У меня 2 петли и результаты не очень хорошие - PullRequest
0 голосов
/ 30 мая 2019

У меня есть 2 цикла, но, к сожалению, он не работает должным образом.Я хочу взять первые конкретные ячейки каждые 50 строк и вставлять их в другую вкладку каждые 31 строку.К сожалению, как и сейчас, я копирую только один диапазон данных и вставляю его во вторую вкладку, повторяя 332 раза.Я знаю, к чему это приводит, но я не знаю, как написать это по-другому.

Sub makro3()

    Dim X As Integer, X_max As Integer

    X_max = 332

    Y_max = 10292

    For X = 0 To X_max Step 50

        Sheets("Arkusz1").Select
        Cells(14 + X, 3).Select
        ActiveCell.Range("A1:T31").Select
        Selection.Copy
        Sheets("dane").Select

        For Y = 0 To Y_max Step 31
            Cells(2 + Y, 7).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        Next Y

    Next X

End Sub

Ответы [ 2 ]

0 голосов
/ 31 мая 2019
Sub makro3() 
Dim X As Integer, X_max As Integer
Dim Y As Integer, Y_max As Integer
Dim Z_max As Double



X_max = 16564
Y_max = 10292
Z_max = X_max / 50

For Z = 0 To Z_max
    X = Z * 50
    Y = Z * 31
    Sheets("Arkusz1").Select
    Cells(14 + X, 3).Select
    ActiveCell.Range("A1:T31").Select
    Selection.Copy
    Sheets("dane").Select

    Cells(2 + Y, 7).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Next Z

End Sub
0 голосов
/ 30 мая 2019

Попробуйте это:

Option Explicit

Sub makro3()

    Dim X As Long, Y As Long
    Dim X_max As Long: X_max = 332
    Dim Y_max As Long: Y_max = 10292

    For X = 0 To X_max Step 50

        ThisWorkbook.Sheets("Arkusz1").Cells(14 + X, 3).Copy

        With ThisWorkbook.Sheets("dane")

            For Y = 0 To Y_max Step 31
                .Cells(2 + Y, 7).PasteSpecial Paste:=xlPasteValues
            Next Y

        End With

    Next X

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