Vba 宏将数据从一个工作簿复制到特定文件夹中的多个工作簿
这正是我想要的,但在根据我的需要更改文件夹路径、文件名等之后,它就不起作用了Vba 宏将数据从一个工作簿复制到特定文件夹中的多个工作簿,vba,Vba,这正是我想要的,但在根据我的需要更改文件夹路径、文件名等之后,它就不起作用了 我的工作簿路径是C:\Users\navinc\Desktop\ 我的文件名是test(2) 我的工作表名称是主项目列表 文件夹路径C:\Users\navinc\Desktop\test中的我的目标文件\ 错误消息:“下标超出范围”是否缺少任何内容 我的代码: Sub Macro1() Dim file As String Dim myPath As String Dim wb As Workb
- 我的工作簿路径是C:\Users\navinc\Desktop\
- 我的文件名是test(2)
- 我的工作表名称是主项目列表
- 文件夹路径C:\Users\navinc\Desktop\test中的我的目标文件\
- 错误消息:“下标超出范围”是否缺少任何内容
Sub Macro1()
Dim file As String
Dim myPath As String
Dim wb As Workbook
Dim rng As Range
Dim wbMaster As Workbook
'if master workbook already opened
'Set wbMaster = Workbooks("test(2).xlsx")
'if master workbook is not opened
Set wbMaster = Workbooks.Open("C:\Users\navinc\Desktop\test(2).xlsx")
Set rng = wbMaster.Sheets("Master Project list").Range("A1:D1")
myPath = "C:\Users\navinc\Desktop\test\" ' note there is a back slash in the end
file = Dir(myPath & "*.xlsx*")
While (file <> "")
Set wb = Workbooks.Open(myPath & file)
rng.Copy
With wb.Worksheets("Master Project list").Range("A1")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteAll
End With
wb.Close SaveChanges:=True
Set wb = Nothing
file = Dir
Wend
Application.CutCopyMode = False
End Sub
Sub宏1()
将文件设置为字符串
将myPath设置为字符串
将wb设置为工作簿
变暗rng As范围
将wbMaster设置为工作簿
'如果主工作簿已打开
'Set wbMaster=工作簿(“测试(2).xlsx”)
'如果未打开主工作簿
设置wbMaster=Workbooks.Open(“C:\Users\navic\Desktop\test(2.xlsx))
设置rng=wbMaster.Sheets(“主项目列表”)。范围(“A1:D1”)
myPath=“C:\Users\navic\Desktop\test\”注意,末尾有一个反斜杠
file=Dir(myPath&“*.xlsx*”)
While(文件“”)
设置wb=Workbooks.Open(myPath&file)
收到
带wb.工作表(“主项目清单”).范围(“A1”)
.Paste特殊XLPaste柱宽
.Paste特殊xlPasteAll
以
wb.Close SaveChanges:=真
设置wb=Nothing
file=Dir
温德
Application.CutCopyMode=False
端接头
似乎wb
没有名为“主项目列表”的工作表
如果您不知道目标工作表的名称,那么这将是一个棘手的问题,除非(例如)它始终是您想要的第一个工作表,在这种情况下,您可以使用:
With wb.Worksheets(1).Range("A1")
提到哪一行出错总是很有帮助的…wb.Worksheets(“MasterProjectlist”).Range(“A1”)中的这一行出错问题是标记文件将具有不同的工作表名称。似乎
wb
没有名为“Master Project list”的工作表?如果您不知道目标工作表的名称,那么这将是一个棘手的问题,除非(例如)它始终是您想要的第一个工作表,在这种情况下,您可以使用wb.Worksheets(1.Range(“A1”)OMG!!!!它起作用了!!非常感谢你。。。你让我开心!!!把我的评论作为回答。