объекту требуется ошибка 424 при копировании листа из закрытой книги - PullRequest
0 голосов
/ 09 апреля 2020

Остальная часть моего субмарина работает так, как я хочу. Он просто выделяет интересующие ячейки и скрывает ряды, которые не имеют отношения к мне на нескольких листах. Одним из последних ручных процессов для меня в этом является ежедневное копирование листа в отчет для запуска подпрограммы. Я наконец-то получил его в качестве автономного сабвуфера:

Sub OrbitAdd()
Dim wbOrbit As Workbook
Dim wbTop As Workbook
Set wbTop = ActiveWorkbook
Set wbOrbit = Workbooks.Open("C:\Users\*****\Orbit.xlsx")
wbOrbit.Sheets(1).Copy after:=wbTop.Sheets(7)
wbOrbit.Close SaveChanges:=False
End Sub

Когда я решил включить это в основной сабвуфер, он сломался. Я попытался Basi c Call OrbitAdd (), и он выдал ошибку (я забыл, какая ошибка). Я думаю, что он искал некоторые аргументы, чтобы передать саб может быть? Когда я попытался скопировать это туда напрямую, он запустился бы, добавил лист и закрыл книгу, прежде чем выбрасывать объект, требуется ошибка 424. Насколько я могу судить, он ничего не сделал после закрытия рабочей книги.

Почему это работает как независимая подпрограмма, и не важно, как я пытаюсь включить ее в основную подпрограмму? Чего мне не хватает или что мне нужно сделать, чтобы перейти из этого блока кода обратно в основную подпрограмму для обработки ошибки? (**** в пути к файлу должен скрывать нерелевантную информацию о пути к файлу)

edit: добавление следующих нескольких строк из моей основной подпрограммы для дальнейшей помощи по устранению неполадок. Единственное, что перед первым общим блоком кода - это отключение обновления экрана и параметров определения размеров для остальной части подпрограммы.

'sets Orbit range to the size of the eNodeB site list
With Sheet8
    lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    Set Orbit = .Range("A1").Resize(lastRow, 1)
End With

'Clearing conditional formatting from the workbook.
For Each ws In ThisWorkbook.Worksheets
    ws.Cells.FormatConditions.Delete
Next ws


'iterates each worksheet with the tables to apply the formatting.
For j = 1 To 3
    If j = 1 Then
        Set ws = Sheet2
    ElseIf j = 2 Then
        Set ws = Sheet3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...