我有一个包含近1000个.csv文件的文件夹。这些文件中的每一个都包含2列,我只想复制其中一列并将其转置到新的工作簿中。新的工作簿将包含来自每个文件的所有数据。下面的代码是什么,我已经产生:通过目录中的excel文件循环并复制到主表单
Sub AllFiles()
Application.EnableCancelKey = xlDisabled
Dim folderPath As String
Dim Filename As String
Dim wb As Workbook
folderPath = "J:etc. etc. etc." 'contains folder path
If Right(folderPath, 1) <> "\" Then folderPath = folderPath + "\"
Filename = Dir(folderPath & "*.csv")
Do While Filename <> ""
Application.ScreenUpdating = False
Set wb = Workbooks.Open(folderPath & Filename)
wb.Range(Range("B1"), Range("B1").End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWorkbook.Close True
Windows("Compiled.xlsm").Activate
Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
Filename = Dir
Loop
Application.ScreenUpdating = True
End Sub
无论出于何种原因代码不工作,弹出一个框式说:“代码执行已中断。”有一次,我打“调试”下面一行被突出显示:
wb.Range(Range("B1"), Range("B1").End(xlDown)).Select
我不是在所有使用VBA经历,我有麻烦了解决此问题。任何想法,这意味着什么,我可以做什么?
尝试添加一个空白行并重新编译代码。 –
关闭所有的excel文件并重新打开并运行你的宏。让我们看看会发生什么 –