Как я могу скопировать столбцы от одного листа до другого с VBA в Excel?

Я пытаюсь записать макрос, который копирует содержание столбца 1 от листа 1 к столбцу 2 на листе 2. Это - то, как модуль похож, но, когда я выполняю его, я добираюсь

Ошибка периода выполнения 9, Нижний индекс из диапазона.

Sub OneCell()
    Sheets("Sheet1").Select
    'select column 1 A1'
    Range("A1:A3").Select

    Selection.Copy
    Range("B1:B3").Select

    ActiveSheet.Paste

    Sheets("Sheet2").Select
    Application.CutCopyMode = False
End Sub
12
задан ZygD 28 June 2015 в 11:38
поделиться

2 ответа

Выбор часто не нужен. Попробуйте это

Sub OneCell()
    Sheets("Sheet2").range("B1:B3").value = Sheets("Sheet1").range("A1:A3").value
End Sub
11
ответ дан 2 December 2019 в 03:48
поделиться

Я не уверен, зачем вам понадобилось отключать подписку, если только ваши простыни на самом деле не назывались Sheet1 или Sheet2. Когда я переименовываю свой Sheet2 в Sheet_2, у меня возникает та же проблема.

Кроме того, некоторые из ваших кодов кажутся неправильными (вы вставляете перед выбором второго листа). Этот код мне подходит.

Sub OneCell()
    Sheets("Sheet1").Select
    Range("A1:A3").Copy
    Sheets("Sheet2").Select
    Range("b1:b3").Select
    ActiveSheet.Paste
End Sub

Если вы не хотите знать, как называются листы, вы можете использовать целочисленные индексы следующим образом:

Sub OneCell()
    Sheets(1).Select
    Range("A1:A3").Copy
    Sheets(2).Select
    Range("b1:b3").Select
    ActiveSheet.Paste
End Sub
1
ответ дан 2 December 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: