Неверная прямая ссылка или ссылка на некомпилированный тип - PullRequest
0 голосов
/ 23 мая 2019

В настоящее время я использую код для обновления файла с циклом, проходящим через несколько листов. До сих пор код работал гладко. При сегодняшнем запуске я столкнулся с «ошибкой во время выполнения» -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

Хотя в настоящее время я могу использовать этот код, я обеспокоен тем, что моя команда столкнется с этим, пока меня нет. Что могло вызвать это / что я могу сделать, чтобы предотвратить это? Я буду готов предоставить файлы, если потребуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...