vba Значения вставки Excel: автоматический: ошибка 1004 руководство: ОК

странная проблема: я прочитал некоторые значения из листа с петлей и вставлю их на другой лист.

У меня есть модуль управления, который вызывает один модуль после другого.

Моя проблема: если я выполняю вызов через модуль управления, я запускаю ошибку 1004 времени выполнения.

Когда я запускаю макрос вручную, это не проблема, и все работает отлично.

Это мой код:

[...] rngname = 3 temp = 1 Do Until Cells(lngRow, 1).Value = "test" lngLastRowOfSection = Cells(lngRow, 1).End(xlDown).Row Set slcFind = Range(Cells(lngRow, 1), Cells(lngLastRowOfSection, 1)) slcFind.Copy Set targetRange = Worksheets("Node Canister VPD").Cells(1, 1) targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True lngRow = Cells(lngLastRowOfSection, 1).End(xlDown).Row If lngRow >= Rows.Count Then Exit Do Loop lngRow = 1 rngname = 3 i = 2 Do Until Cells(lngRow, 1).Value = "test" lngLastRowOfSection = Cells(lngRow, 1).End(xlDown).Row Set slcFind = Range(Cells(lngRow, 2), Cells(lngLastRowOfSection, 2)) slcFind.Copy Set targetRange = Worksheets("Node Canister VPD").Cells(i, 1) targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True lngRow = Cells(lngLastRowOfSection, 1).End(xlDown).Row If lngRow >= Rows.Count Then Exit Do i = i + 1 Loop [...] 

У кого-нибудь есть идея? Эта часть кода отмечена:

 targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True 

С наилучшими пожеланиями, Калейн

Скотт Холцман прав, определите свой рабочий лист при настройке диапазонов. Я смог воссоздать ошибку, имея 1 лист с достоверными данными, лист для вставки и еще один полностью чистый лист. Когда я запускал макрос из допустимого листа, все было нормально, когда я запускал его с включенным чистым листом, он пытается переставить пустой столбец в строку. В листе Excel больше столбцов, чем строк, поэтому он выходит из строя, потому что он не подходит.

Попытайтесь использовать это, измените «Первый» на то, что вы вызываете на свой исходный лист.

 Sub test() Dim Other As New Worksheet Set Other = Worksheets("First") lngrow = 1 rngname = 3 temp = 1 Do Until other.Cells(lngrow, 1).Value = "test" lngLastRowOfSection = Other.Cells(lngrow, 1).End(xlDown).Row Set slcFind = Range(Other.Cells(lngrow, 1), Other.Cells(lngLastRowOfSection, 1)) slcFind.Copy Set targetRange = Worksheets("Node Canister VPD").Cells(1, 1) targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True lngrow = Other.Cells(lngLastRowOfSection, 1).End(xlDown).Row If lngrow >= Rows.Count Then Exit Do Loop lngrow = 1 rngname = 3 i = 2 Do Until Other.Cells(lngrow, 1).Value = "test" lngLastRowOfSection = Other.Cells(lngrow, 1).End(xlDown).Row Set slcFind = Range(Other.Cells(lngrow, 2), Other.Cells(lngLastRowOfSection, 2)) slcFind.Copy Set targetRange = Worksheets("Node Canister VPD").Cells(i, 1) targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True lngrow = Other.Cells(lngLastRowOfSection, 1).End(xlDown).Row If lngrow >= Rows.Count Then Exit Do i = i + 1 Loop End Sub 
  • Выбор диапазона с использованием определенных критериев в непрерывном столбце данных
  • Excel VBA: цикл из наибольшего значения и проверка условий
  • Pairs Trading VBA Loop
  • Добавить цикл в код vba для excel
  • VBA через папку (mac)
  • Как найти несколько строк в VBA
  • Как ввести нумерацию циклов в формулу для пропуска столбцов
  • Цикл Excel VBA выполняется очень медленно, если используется на большом наборе данных, а затем падает
  • Код до конца выбора
  • В нижней строке цикла удаляется каждая строка в excel, независимо от того, выполнены ли требования If
  • Повторите команду с различными данными в VBA
  • Давайте будем гением компьютера.