Как скопировать данные в любой другой столбец в Excel VBA - PullRequest
1 голос
/ 11 ноября 2019

У меня есть 2 листа, и я хочу скопировать ячейки (B18:B23) из Sheet1 и вставить их в Sheet2, транспонируя и вставляя их в каждый второй столбец (O4, Q4, S4 и т. Д. Пропуская ячейку между).

Sub CopyData()
Dim wsSrc As Worksheet
Dim wsDst As Worksheet

    Set wsSrc = Worksheets("Sheet1")
    Set wsDst = Worksheets("Sheet2")

    wsSrc.Range("B18:B23").Copy
    wsDst.Offset(1, 1).Range("O4").PasteSpecial xlPasteValues, Transpose:=True


    Application.CutCopyMode = False

End Sub

Я получил его для транспонирования, но не могу найти способ пропустить столбец при вставке.

Заранее спасибо!

1 Ответ

2 голосов
/ 11 ноября 2019

Добро пожаловать на SO. Хороший первый пост.

Там нет «пропустить / транспонировать» с использованием стандартного метода Копировать / Вставить, поэтому я думаю, что лучшим вариантом будет цикл через ваши значения и использовать смещение. Это должно сделать это ...

Sub CopyData()
    Dim wsSrc As Worksheet, wsDst As Worksheet, aCell As Range, tOff As Long

    Set wsSrc = Worksheets("Sheet1")
    Set wsDst = Worksheets("Sheet2")

        For Each aCell In wsSrc.Range("B18:B23").Cells
            wsDst.Range("o4").Offset(0, tOff).Value = aCell.Value
            tOff = tOff + 2

        Next aCell

End Sub

Если это работает для вас, пожалуйста, не забудьте нажать accept.

...