首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA: For循环命中自动化错误-2147221080

VBA: For循环命中自动化错误-2147221080
EN

Stack Overflow用户
提问于 2020-09-30 09:48:14
回答 1查看 57关注 0票数 0

这是我的代码。

我的目的是,打开一个测试excel,然后保存为包含在‘测试’工作表中的文件名。我只是想自动完成为文件名列表中的每个文件保存Excel的任务。

代码语言:javascript
复制
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自动化错误。

调试时突出显示的代码行是:

代码语言:javascript
复制
sjk.SaveAs ThisWorkbook.Path & "\" & saveName

我在这个网站和许多其他网站上看了看,因为它似乎是一个常见的bug,我有一种感觉,它是一个简单的修复,但我没有尝试过任何工作。我已经重写了代码很多次,以达到这一点-我就是看不出错误在哪里……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-30 10:16:49

阿!我认为答案是关闭文件,然后再也不要重新打开它。

将设置sjk =Workbooks.Open(文件名)移到顶部的For循环中。

这应该会帮你解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64129820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档