[英]Subscript out of range error when copying data from a workbook to another
[英]Copying data from one excel file to another - Subscript out of range
我在下面的代码中尝试将excel文件数据复制到其他excel文件中,但出现错误: 运行时错误'9'下标超出范围
Sub Button1_Click()
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "\\test\CheckFile"
fileName = "test2.xlsx"
Do While fileName <> ""
Workbooks.Open (fileName)
For Each sheet In Workbooks(fileName).Worksheets
total = Workbooks("Book1.xlt").Worksheets.Count
Workbooks(fileName).Worksheets(sheet.Name).Copy _ //error appears here
after:=Workbooks("Book1.xlt").Worksheets(total)
Next sheet
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
好的,我已重做我的答复,以说明您的最新信息。 我创建了以下文件夹: C:\\test\\CheckFile
。 里面有两个Excel文件,都保存为.xlsx。 我创建了一个空的PAY.xlsm并将其保存在其他位置(即不在test \\ CheckFile目录中)。 在运行代码之前,我打开了PAY.xlsm。
我认为模板文件.xlt会引起问题。 它们以不同的名称打开。 当Workbooks.Open (fileName)
转到打开Book2.xlt时,它将以Book21.xlsx的形式打开。 然后导致下标超出范围错误。
然后我运行了这段代码,它起作用了:
Sub Button1_Click()
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\test\checkfile\"
fileName = Dir(directory)
Do While fileName <> ""
Workbooks.Open (fileName)
For Each sheet In Workbooks(fileName).Worksheets
total = Workbooks("PAY.xlsm").Worksheets.Count
Workbooks(fileName).Worksheets(sheet.Name).Copy _
after:=Workbooks("PAY.xlsm").Worksheets(total)
Next sheet
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.