这是我的代码。
我的目的是,打开一个测试excel,然后保存为包含在‘测试’工作表中的文件名。我只是想自动完成为文件名列表中的每个文件保存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我在这个网站和许多其他网站上看了看,因为它似乎是一个常见的bug,我有一种感觉,它是一个简单的修复,但我没有尝试过任何工作。我已经重写了代码很多次,以达到这一点-我就是看不出错误在哪里……
发布于 2020-09-30 10:16:49
阿!我认为答案是关闭文件,然后再也不要重新打开它。
将设置sjk =Workbooks.Open(文件名)移到顶部的For循环中。
这应该会帮你解决这个问题。
https://stackoverflow.com/questions/64129820
复制相似问题