excel - VBA:For循环命中自动化错误-2147221080
问题描述
这是我的代码。
我的目的是,打开一个测试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保存得很好,然后我遇到了错误。-2147221080 自动化错误。
调试时突出显示的代码行是:
sjk.SaveAs ThisWorkbook.Path & "\" & saveName
我环顾了这个网站和许多其他网站,因为它似乎是一个常见的错误,我觉得它很容易修复,但我尝试过的任何方法都没有奏效。我已经多次重写代码以达到这一点 - 我只是看不出错误在哪里......
解决方案
啊! 我认为答案是您关闭了文件,但从不重新打开它。
将您的 Set sjk = Workbooks.Open(filename) 移动到顶部的 For 循环中。
那应该为你解决它。
推荐阅读
- fortran - Fortran, double free or corruption (!prev) (discriminator 2)
- r - 在 R 中复制 STATA 的默认边距输出
- powershell - 将项目移动到正确的目的地
- javascript - chart.js 控制网格线之间的空间/大小
- vhdl - vhdl 中的 process 语句中的顺序执行
- scripting-language - 这是什么脚本语言?
- javascript - Javascript 解析日期
- laravel - Laravel 测试请求 - 服务提供者 - 中间件问题
- php - 看起来可疑的文件突然出现在 FTP 服务器上
- java - 列表转置