Я недавно столкнулся с этой ошибкой. Я не уверен, где это происходит. Я запускал этот фрагмент кода буквально тысячи раз, и сегодня по какой-то глупой причине он не работает. Я смотрел на этот код, и он не менялся месяцами, в дополнение к этому все еще есть тот же код, который генерирует инструмент записи VBA. Это сообщение об ошибке: ![Error Message](https://i.stack.imgur.com/EFGUF.png)
, и это бит кода, на котором застряла моя программа:
Sheets("Sheet1").Select
Cells(wHeaders, 1).Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Workbooks(CurrWB).Activate
Sheets(CurrSheet).Select
Sheets(CurrSheet).Activate
Cells(CurrRow, CurrCol).Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True 'THIS IS THE LINE WITH THE ERROR
ActiveSheet.Paste
Selection.EntireColumn.AutoFit
Поскольку не былоизменения и что построитель кода все еще создает эту же строку, я очень запутался. Помощь была бы потрясающей. Кроме того, потому что я знаю, что вы все спросите, да, мои переменные определены.
Dim CurrSheet As Variant
Dim CurrWB As Variant
Dim CurrCol As Variant
Dim CurrRow As Variant
Существует один последний, который передается в Sub
, и это Sub CoolProg(Optional wHeaders As Integer = 1)
ОБНОВЛЕНИЕ: Я не уверен, почему этослучай, но ошибка, кажется, исчезает, когда я делаю следующее редактирование в строке, где идет отладчик.
Worksheets(CurrSheet).PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False ', NoHTMLFormatting:=True
Все, что я сделал, это закомментировал раздел NoHTMLFormatting, может кто-нибудь помочь мне понять, почему это работает и, возможно, что является основной причиной этой ошибки. Я хочу убедиться, что я понимаю это, чтобы я мог исправить, какой код мне нужен.
Update # 2 .... Так что эта ошибка возникает только тогда, когда у меня открыто окно Google Chrome, и я запускаю этот код. Я закрыл Chrome, и это сработало. Была похожая задача, которая основывалась на этом, но я знаю, что она ОЧЕНЬ тяжелая для вычислений, и она использует эту подпрограмму внутри, и я не смог пройти через нее. Я проверил диспетчер задач и увидел, что Chrome был наверху (PS он высасывает ресурсы), поэтому я убил, и теперь он работает. Если кто-то может объяснить, что происходит, это было бы удивительно.
Обновление # 3
Я добавил 2-секундную паузу до запуска проблемной линии, и, похоже, проблема решена. Я не уверен, почему это работает, но кажется, что есть больше ресурсов, и моим машинам нужно время, чтобы освободить некоторые ресурсы, чтобы это работало. Если у кого-то есть понимание того, почему это решение работает, это было бы замечательно. Код теперь выглядит так:
Cells(CurrRow, CurrCol).Select
Application.Wait (Now + TimeValue("0:00:02")) 'Added this line for the delay
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True 'this is the problem code