Excel 要从多个电子表格复制的宏
我希望得到一些代码,从文件夹中提取文件,并将数据粘贴到目标电子表格中 我有一个文件夹,其中包含所有格式相同的报告,报告每周生成,每周保存到一个新文件夹中,因此我不总是从同一文件夹中拾取文件。我想要一个提供“浏览文件夹”对话框的宏,当我选择文件夹时,它会依次打开该文件夹中的每个Excel文件,复制数据(范围a:W),将其粘贴回目标电子表格,关闭电子表格,然后移到文件夹中的下一个文件Excel 要从多个电子表格复制的宏,excel,vba,Excel,Vba,我希望得到一些代码,从文件夹中提取文件,并将数据粘贴到目标电子表格中 我有一个文件夹,其中包含所有格式相同的报告,报告每周生成,每周保存到一个新文件夹中,因此我不总是从同一文件夹中拾取文件。我想要一个提供“浏览文件夹”对话框的宏,当我选择文件夹时,它会依次打开该文件夹中的每个Excel文件,复制数据(范围a:W),将其粘贴回目标电子表格,关闭电子表格,然后移到文件夹中的下一个文件 在报告中,标题下的行数并不总是相同的,可以只有一行,也可以有两行以上,因此我还需要使用代码检查每行中是否存在数据,如
在报告中,标题下的行数并不总是相同的,可以只有一行,也可以有两行以上,因此我还需要使用代码检查每行中是否存在数据,如果只有一行,它将复制该行,如果超过1个,则会将其全部复制。您可以使用类似的方法在选定文件夹中的文件夹中循环:
Dim sPath As String
Dim sFil As String
Dim FolderPath As String
Dim diaFolder As FileDialog
' Open the file dialog
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Show
FolderPath = diaFolder.SelectedItems(1)
' Cycle through spreadsheets in selected folder
sPath = FolderPath & "\" 'location of files
sFil = Dir(sPath & "*.csv") 'change or add formats
Do While sFil <> "" 'will start LOOP until all files in folder sPath have been looped through
Set oWbk = Workbooks.Open(sPath & "\" & sFil) 'opens the file
' do something
oWbk.Close True
sFil = Dir
Loop
Dim sPath作为字符串
将sFil设置为字符串
将FolderPath设置为字符串
“将文件夹设置为文件”对话框
'打开文件对话框
Set diaFolder=Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect=False
diaFolder.Show
FolderPath=diaFolder.SelectedItems(1)
'循环浏览选定文件夹中的电子表格
sPath=文件夹路径和文件的“\”位置
sFil=Dir(sPath&“*.csv”)'更改或添加格式
Do While sFil“”将启动循环,直到文件夹sPath中的所有文件都已循环通过
Set oWbk=Workbooks.Open(sPath&“\”&sFil)”打开文件
“做点什么
oWbk.Close为真
sFil=Dir
环
然后,您可以将代码复制到写有“做某事”的列中