【发布时间】:2020-05-20 19:34:22
【问题描述】:
我正在尝试从一个文件夹中名为“RCR Schedule C - Rate Card.xls”的 3 个不同工作表中的 SAME 选项卡 d. Rate Card 复制特定范围的数据,然后粘贴到名为“RFP 合并宏”的主文件中。
我创建了循环,并且能够从文件夹中的第一个文件复制/粘贴,但不能从其他 2 个文件复制/粘贴。下面是它的代码。有什么方法可以确保代码适用于文件夹中的所有文件,而不仅仅是第一个文件?
Private Sub CommandButton2_Click()
Dim MyFile As String
Dim erow
MyFile = Dir("c:\Users\s4043091\Desktop\New folder\RFP\NEW\")
Do While Len(MyFile) > 0
If MyFile = "RFP consolidation macro.xlsm" Then
Exit Sub
End If
'Workbooks.Open ("c:\Users\s4043091\Desktop\New folder\RFP\NEW\RCR Schedule C - Rate Card.xls")
Workbooks("RCR Schedule C - Rate Card.xls").Worksheets("d. Rate Card").Range("b3:ah482").Copy _
Workbooks("RFP consolidation macro.xlsm").Worksheets("Masterfile-Rate Card").Range("b1")
Workbooks("RCR Schedule C - Rate Card.xls").Worksheets("a. Company Background").Range("e7").Copy _
Workbooks("RFP consolidation macro.xlsm").Worksheets("Masterfile-Rate Card").Range("a4:a482")
'Range("A2:D200").Copy
'ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, "a").End(xlUp).Offset(1, 0).Row
'ActiveSheet.Paste Destination:=Worksheets("Macro").Range(Cells(erow, 1), Cells(erow, 1))
MyFile = Dir
Loop
End Sub
【问题讨论】:
-
您好,感谢您的回复!但我想要一个具有上述功能的 MACROS,而不是插件,因为我们必须每月针对不同的工作表迭代该过程
-
您是否费心查看加载项中的代码并尝试理解它并使其适应您的需求?
-
不,因为已经有 1000 个模板免费提供,我不需要另一个示例,而是需要更具体的解决方案来解决我的问题,因为我在这个论坛中。喂?
-
你说你想循环“工作表”,然后你说“标签”工作表和标签是一回事。您是否要循环文件夹中的工作簿并从具有相同名称的工作簿中的工作表中提取?如果是这种情况,那么我建议您使用
FileSystemObject来循环文件夹中的文件而不是Dir()。这可能就是您的问题所在。
标签: vba loops directory copy-paste