Я посмотрел на вопрос и увидел несколько решений, связанных с такими вещами, как Select или с защищенными рабочими листами, но ни одно из них не относится ко мне здесь.
По разным причинам я не могу опубликовать весь код, но я дам описание того, что он делает, и опубликую точную подпрограмму, которая вызывает у меня проблемы.
У меня есть макрос, который генерирует несколько рабочих листов на основе введенного пользователем месяца и года (например, «1» - «31» или «1» - «30» и т. Д. c). Чтобы сгенерировать эти рабочие листы, макрос создает копии рабочего листа с подходящим названием «ПРИМЕР». Одна вещь, которая копируется, - это картинка (просто прямоугольник со словом «Экспорт»), к которой прикреплен макрос.
Я недавно сделал то, что, как мне показалось, было косметическим c изменением, переместив местоположение этой картинки, с тех пор, когда я запускаю макрос, я получаю ошибку:
"Время выполнения ошибка «1004»: Microsoft Excel не может вставить данные. "
И параметры для" Завершить "," Отладка "и" Справка "
Если я выберу" Отладка ", это указывает на секунду макрос, который вызывается во время процесса генерации макроса '
Sub CopyAllShapes()
Dim ws As Worksheet
' Sets the non-generated worksheets as an array
nSheets = Array("EXAMPLE", "Weekly Totals", "Menu")
' Copies the Picture from the EXAMPLE sheet to all worksheets not in the array and then assigns a
' seperate Macro called "Export" to the picture on each of these sheets.
For Each ws In ActiveWorkbook.Worksheets
If Not IsNumeric(Application.Match(ws.Name, nSheets,0)) Then
Sheets("EXAMPLE").Shapes("Picture 1").Copy
ws.Range("J62").PasteSpecial
ws.Shapes("Picture 1").OnAction = "Export"
End If
Next ws
Application.CutCopyMode = xlCopy
End Sub
Опция Debug выделяет строку
ws.Range("J62").PasteSpecial
Что меня действительно смущает, так это то, что если я выбираю «End» вместо «Отладка», макрос останавливается, но на всех листах вставлена картинка, а также назначен макрос экспорта, и все работает, как ожидалось. Если бы я был единственным человеком, использующим это, это было бы незначительным раздражением, но этот документ используется многими людьми, которым нельзя с уверенностью сказать "просто игнорировать" ошибку. Поскольку макрос работает должным образом, как я могу устранить причину проблемы и устранить ошибку go?
Как я уже сказал, я не могу опубликовать весь макрос, но могу опубликовать некоторые кусочки, если кому-то нужна дополнительная информация.