Excel 循环浏览VBA中的文件

Excel 循环浏览VBA中的文件,excel,vba,Excel,Vba,我正在尝试循环遍历文件夹中的所有文件,同时将它们复制到工作簿中。我正在运行宏,复制/粘贴已经完成,我缺少的是循环,因此我可以自动执行此过程。我已经在代码中工作,但它什么也没做 Option Explicit Sub DailyTrans_MDM() Dim vFile As Variant Dim folderPath As String Dim filePath As String Dim wbCopyTo As Workbook Dim wsCopyTo As Worksheet D

我正在尝试循环遍历文件夹中的所有文件,同时将它们复制到工作簿中。我正在运行宏,复制/粘贴已经完成,我缺少的是循环,因此我可以自动执行此过程。我已经在代码中工作,但它什么也没做

    Option Explicit
Sub DailyTrans_MDM()
Dim vFile As Variant
Dim folderPath As String
Dim filePath As String
Dim wbCopyTo As Workbook
Dim wsCopyTo As Worksheet
Dim wbCopyFrom  As Workbook
Dim wsCopyFrom As Worksheet

folderPath = (filePath & "*.xl*")
vFile = Dir(folderPath & "*.xl*")
Do While vFile <> ""

Application.ScreenUpdating = False
Set wbCopyTo = ActiveWorkbook
Set wsCopyTo = ActiveSheet
'------------------------------------------------------------------------------
Set wbCopyFrom = Workbooks.Open(vFile)
Set wsCopyFrom = wbCopyFrom.Worksheets("ReporteCifrasControl")

'--------------------------------------------------------------------------------------
wsCopyFrom.Range("A2:M" & wsCopyFrom.Range("A" & Rows.Count).End(xlUp).row).Copy
wsCopyTo.Range("A" & wsCopyTo.Range("A" & Rows.Count).End(xlUp).row + 1).PasteSpecial xlPasteValuesAndNumberFormats
wbCopyFrom.Close SaveChanges:=False


vFile = Dir
Loop
Application.ScreenUpdating = False
End Sub
选项显式
每日交通管理分公司(MDM)
作为变量的Dim vFile
将folderPath设置为字符串
将文件路径设置为字符串
将wbCopyTo设置为工作簿
将wsCopyTo设置为工作表
将wbCopyFrom设置为工作簿
将wsCopyFrom设置为工作表
folderPath=(文件路径和“*.xl*”)
vFile=Dir(folderPath&“*.xl*”)
当vFile“”时执行此操作
Application.ScreenUpdating=False
将wbCopyTo设置为=活动工作簿
设置wsCopyTo=ActiveSheet
'------------------------------------------------------------------------------
设置wbCopyFrom=工作簿。打开(vFile)
设置wsCopyFrom=wbCopyFrom.Worksheets(“ReporteCifrasControl”)
'--------------------------------------------------------------------------------------
wsCopyFrom.Range(“A2:M”和wsCopyFrom.Range(“A”和Rows.Count).End(xlUp.row).复制
wsCopyTo.Range(“A”和wsCopyTo.Range(“A”和Rows.Count).End(xlUp).row+1).粘贴特殊的XLPasteValues和NumberFormats
wbCopyFrom.Close SaveChanges:=False
vFile=Dir
环
Application.ScreenUpdating=False
端接头

希望您能帮助我,请在
循环之前添加
vFile=Dir
。而且
Dir
永远不会返回布尔值,因此如果TypeName(vFile)=“boolean”,则可以删除
然后
@BigBen感谢您的快速回答,但它仍然没有起到任何作用:|用您的建议更新了代码。其他注意事项:
设置wbCopyTo=ActiveWorkbook
设置wsCopyTo=ActiveSheet
-这些应该在循环之外。看起来您正在将
“*.xl*”
连接到路径两次。。。这是有问题的
folderPath=(filePath&“*.xl*”)
然后
vFile=Dir(folderPath&“*.xl*”)
。这种连接应该只发生一次,可能是在
Dir
中。谢谢,问题已经解决了。现在我必须添加Application.FileDialog,以便选择要复制@BigBen的文件文件夹