Как использовать VBA для циклического прорезания диапазона ячеек и вставки в следующий ряд - PullRequest
0 голосов
/ 11 июня 2019

Цель этого VBA состоит в том, чтобы превратить один длинный ряд значений (десятки тысяч) в нечто более читаемое, ограничивая каждую строку 22 значениями.У меня есть ручная версия этого, которая работает для 200 строк, но я надеюсь использовать циклы, чтобы сэкономить свое время и, надеюсь, улучшить производительность.

Пример: у меня есть значения в A1: ZZ1 и я пытаюсь сократить W1:ZZ1 и вставьте в A2, затем разрежьте W2: ZD2 и вставьте в A3, пока не останется значений для вырезания и вставки.

Я использую Excel 2010.

Sub InsertScript22perLine()
'Turn off screen updating to speed up macro
Application.ScreenUpdating = False

    Range("W1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Selection.End(xlToLeft).Select
    Range("A2").Select
    ActiveSheet.Paste
    Range("W2").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Selection.End(xlToLeft).Select
    Range("A3").Select
    ActiveSheet.Paste

'Turn screen updating back on
Application.ScreenUpdating = True
End Sub

1 Ответ

0 голосов
/ 11 июня 2019
Sub InsertScript22perLine()

    Application.ScreenUpdating = False

    ' Starting column for input data
    Dim sStartCol As String
    Dim lStartCol As Long

    ' Count of columns
    Dim lColCount As Long

    ' Count of columns of data for output
    Dim lRowLen As Long
    lRowLen = 22

    Dim lRow As Long
    lRow = 2

    sStartCol = "W"
    lStartCol = Range(sStartCol & 1).Column

    ' Get the column count
    lColCount = Cells(1, Columns.Count).End(xlToLeft).Column

    For a = lStartCol To lColCount Step lRowLen
        Range(Cells(lRow, 1), Cells(lRow, lRowLen)).Value = Range(Cells(1, a), Cells(1, a + lRowLen)).Value
        lRow = lRow + 1
    Next


    Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...