VBA:For 循环命中自动化错误 -2147221080
VBA: For Loop hitting Automation Error -2147221080
这是我的代码。
我的目的是,打开一个测试excel然后另存为'Test'sheet中包含的文件名。我只是想自动执行为每个文件名列表保存 Excel 的任务。
Sub POPButton1_Click()
Dim i As Long, LastRow As Long
LastRow = Test.Range("A" & Rows.Count).End(xlUp).Row
Dim filename As String
filename = ThisWorkbook.Path & Application.PathSeparator & "Test.xlsx"
Dim sjk As Workbook
Set sjk = Workbooks.Open(filename)
Dim saveName As String
For i = 1 To LastRow
saveName = Test.Cells(i, "D").Value
sjk.SaveAs ThisWorkbook.Path & "\" & saveName
sjk.Close
Next i
End Sub
第一个excel保存就好了,然后我就中了bug。 -2147221080 自动化错误。
调试时突出显示的代码行是:
sjk.SaveAs ThisWorkbook.Path & "\" & saveName
我查看了这个网站和许多其他网站,因为它似乎是一个常见的错误,我觉得它很容易修复,但我尝试过的都没有奏效。我已经多次重写代码以达到这一点 - 我只是看不出错误在哪里...
啊!我认为答案是您关闭了文件,但从未 re-open 它。
将您的 Set sjk = Workbooks.Open(filename) 移到顶部的 For 循环中。
这应该会为您解决。
这是我的代码。
我的目的是,打开一个测试excel然后另存为'Test'sheet中包含的文件名。我只是想自动执行为每个文件名列表保存 Excel 的任务。
Sub POPButton1_Click()
Dim i As Long, LastRow As Long
LastRow = Test.Range("A" & Rows.Count).End(xlUp).Row
Dim filename As String
filename = ThisWorkbook.Path & Application.PathSeparator & "Test.xlsx"
Dim sjk As Workbook
Set sjk = Workbooks.Open(filename)
Dim saveName As String
For i = 1 To LastRow
saveName = Test.Cells(i, "D").Value
sjk.SaveAs ThisWorkbook.Path & "\" & saveName
sjk.Close
Next i
End Sub
第一个excel保存就好了,然后我就中了bug。 -2147221080 自动化错误。
调试时突出显示的代码行是:
sjk.SaveAs ThisWorkbook.Path & "\" & saveName
我查看了这个网站和许多其他网站,因为它似乎是一个常见的错误,我觉得它很容易修复,但我尝试过的都没有奏效。我已经多次重写代码以达到这一点 - 我只是看不出错误在哪里...
啊!我认为答案是您关闭了文件,但从未 re-open 它。
将您的 Set sjk = Workbooks.Open(filename) 移到顶部的 For 循环中。
这应该会为您解决。