vba Значения вставки Excel: автоматический: ошибка 1004 руководство: ОК
странная проблема: я прочитал некоторые значения из листа с петлей и вставлю их на другой лист.
У меня есть модуль управления, который вызывает один модуль после другого.
Моя проблема: если я выполняю вызов через модуль управления, я запускаю ошибку 1004 времени выполнения.
- циклы для значений между строками с определенным значением
- Excel VBA для каждого цикла пропуска пропусков
- Для петель VBA. Программа Macro Excel
- В нижней строке цикла удаляется каждая строка в excel, независимо от того, выполнены ли требования If
- workheet_calculate застревает в цикле
Когда я запускаю макрос вручную, это не проблема, и все работает отлично.
Это мой код:
[...] 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
С наилучшими пожеланиями, Калейн
- Очистите содержимое столбцов B до F, если ячейка A пуста
- Запись результата VBA цикла с решателем
- Диапазон возврата основан на поиске петли в отдельной книге
- Как исправить ошибку «ошибка компиляции: следующая без» в VBA?
- Ускорение времени выполнения в макросе VBA excel с двойной петлей
- Excel для цикла для автоматической копии
- Excel VBA vlookup с использованием дат
- Цикл VBA через каталог
Скотт Холцман прав, определите свой рабочий лист при настройке диапазонов. Я смог воссоздать ошибку, имея 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