在Excel2003中寫的代碼,運行正常,到了Excel2010中就報錯
Private Sub CommandButton10_Click()
Dim fs, f, f1, fc, s '無型別變數,即變體型別
Set fs = CreateObject("Scripting.FileSystemObject") '呼叫檔案系統物件
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker) '打開對話框
fd.Show '顯示打開對話框
s = fd.SelectedItems(1) '選擇要處理的檔案
Set f = fs.GetFolder(s) '獲取檔案夾
Set fc = f.Files '得到檔案集
Dim n, k, k1, i, j, m, k2
' n = 0 '準備遍歷所有檔案,從0個開始,n 為指標
m = 1 'm為行的控制指標
For Each f1 In fc '回圈 '從檔案集fc中得到檔案f1
If LCase(Right(f1.Name, 3)) <> "xls" Then GoTo nt '如果不是excel檔案,忽略之.LCase大轉小寫
Workbooks.Open f1.Name '打開它.依次打開(關閉)所選檔案夾下各檔案
k1 = NO_SPACE_HANG("9") '自定義函式
' Public Function NO_SPACE_LIE(k As String) As Integer
k2 = NO_SPACE_LIE("9") '
'''''''''''''''''''''''''
'k = 3 '本簿的1,2列已經賦值了,從第3列開始做
For i = 2 To k1 '終值只能用大致的數值代替,因為找不到合適的變數
m = m + 1
For j = 1 To k2
Workbooks(1).Sheets("9").Cells(m, j + 2) = Workbooks(2).Sheets("9").Cells(i, j) 'Name 提取需要的資料:新打開的檔案中的資料
Next j
Workbooks(1).Sheets("9").Cells(m, 1) = Workbooks(2).Name '提取需要的資料:新打開的檔案名
Workbooks(1).Sheets("9").Cells(m, 2) = Workbooks(2).Sheets("9").Name '提取需要的資料:新打開的檔案第1個表名
Next i
'''''''''''''''''''''''''
Workbooks(2).Close SaveChanges:=False '關閉新打開的檔案,不保存
nt: '標簽,行號
Next '下一個檔案
End Sub
1、運行時錯誤 1004 應用程式定義或物件定義錯誤
Dim fs, f, f1, fc, s '無型別變數,即變體型別
2、明明找到檔案顯示了檔案名,卻說找不到該檔案
Workbooks.Open f1.Name '打開它.依次打開(關閉)所選檔案夾下各檔案
uj5u.com熱心網友回復:
放在Excel 2003中運行。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/129872.html
