首页 > 解决方案 > 无效的前向引用,或对未编译类型的引用

问题描述

我目前正在使用代码来更新文件,其中循环运行在多个工作表中。到目前为止,代码运行顺利。今天运行时,遇到“运行时错误'-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

虽然目前我能够操作此代码,但我担心我的团队会在我不在时遇到这个问题。什么可能导致这种情况/我可以做些什么来防止这种情况发生?如果需要,我愿意提供文件。

标签: excelvba

解决方案


我和我的朋友有同样的问题。我在工具 > 参考(在 VBA 编辑器中)下启用了“AccessibilitycplAdmin 1.0 type admin”,这解决了两台计算机上的问题


推荐阅读