我目前正在使用代码来更新文件,并循环运行多个工作表。到目前为止,代码运行顺利。在今天的运行中,我遇到“运行时错误'-2147319767(80028029)'自动化错误,无效的前向引用或对未编译类型的引用。”
错误发生在第Workbooks("Upload.xlsm").Worksheets(branchName).Range("C7").PasteSpecial Paste:=xlPasteValues
行,并在循环的第6次迭代中显示。
我用On Error Resume Next
作为完成运行的临时措施,因为在那时必须完成运行。
完成后,有3个迭代失败(第六,第七和第十次)。这三个之间没有相互关联(即不同的副本源,值等),但是在其他迭代中,它们具有完全相同的副本源/值,已成功完成。
稍后在这些表上运行另一个复制命令会导致相同的错误。我最终不得不删除并重新创建工作表才能解决该错误。
' Uploads file update
fpath = Workbooks("TEG Rates.xlsm").Worksheets("Link List").Range("E3").Value
Workbooks.Open fpath & "Upload.xlsm"
For branchNo = 21 To 37
branchName = Workbooks("TEG Rates.xlsm").Worksheets("Link List").Range("A" & branchNo).Value
branchGroup = Workbooks("TEG Rates.xlsm").Worksheets("Link List").Range("B" & branchNo).Value
' Copy/Paste Buy & Sell
Workbooks("TEG Rates.xlsm").Worksheets(branchGroup).Range("D7:G111").Copy
Workbooks("Upload.xlsm").Worksheets(branchName).Range("C7").PasteSpecial Paste:=xlPasteValues
For no = 7 To 10
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D" & no).Value = "=ROUND(100/C" & no & ",6)"
Next no
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D14").Value = "=ROUND(100/C14,6)"
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D15").Value = "=ROUND(10000/C15,4)"
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D16").Value = "=ROUND(100/C16,6)"
Workbooks("Upload.xlsm").Worksheets(branchName).Range("D19").Value = "=ROUND(100/C19,6)"
Next branchNo
Workbooks("Upload.xlsm").Close SaveChanges:=True
Application.CutCopyMode = False
虽然我目前可以使用此代码,但我担心的是我的团队在我不在时会遇到此代码。是什么原因引起的,我该怎么做才能防止这种情况的发生?如果需要,我愿意提供这些文件。
答案 0 :(得分:4)
我今天在宏上遇到了同样的问题。
注意到使用Sheets(sheet_name_var).Select
选择工作表时会弹出错误。
我发现的解决方法是:
-复制宏存在问题的工作表副本,
-删除原始工作表,
-将副本重命名为原始名称。
希望这会有所帮助。
答案 1 :(得分:4)
我的朋友和我有同样的问题。我尝试在“工具”>“引用”下启用“ AccessibilitycplAdmin 1.0 type admin”,此问题在两台计算机中均已解决
答案 2 :(得分:1)
我找到解决问题的唯一方法是:
我希望这会有所帮助。
答案 3 :(得分:0)
我有一个非常相似的问题,我有几个相似的excel文件,都使用相同的代码。该代码在所有Excel中都可以运行,但其中一个具有相同的错误:
"run-time error '-2147319767 (80028029)' Automation error, Invalid forward reference, or reference to uncompiled type."
我能够通过将损坏的excel保存为.xlsx而不是.xlsm来解决此问题,关闭所有excel应用程序,重新打开.xlsx,添加代码并另存为.xlsm。现在它正在工作...
答案 4 :(得分:0)
我的朋友和我有同样的问题。我试图在“工具”>“引用”下启用“ AccessibilitycplAdmin 1.0 type admin”,此问题在两台计算机中均已解决
我尝试上面的评论并开始工作。解决我的问题。谢谢。
答案 5 :(得分:0)
我遇到了完全相同的错误“自动化错误,无效的前向引用...”这是我使用了一年多的工作簿,没有任何问题,并且最近没有进行任何更改。在工具>>参考中添加“ AccessibilityCplAdmin 1.0类型库”解决了该问题。