从目标相同的差异工作表中复制粘贴

时间:2018-07-01 07:26:14

标签: vba for-loop copy paste next

我必须执行相同的复制粘贴,但是要添加更多位于不同工作表(4、6、8等)中的列,而不是像j ......

这些行正在使用arrRows(感谢Tinman)

  • 但是对于列,我尝试了3个fors(一个工作表,一个用于列,一个用于行),因为它不跳到下一个j(经过所有n个之后)转到下一列)而不是下一张纸(这是我需要的)

  • 我尝试了另一条路径(当前代码),我找不到一个序列,即使用j作为变量可以解决arrcolumns中的正确数字。也许我可以做一个do..loop?

Sub GHM()

if not os.path.exists(os.path.join("C:/", "Users", login, "Documents"):

下一步

结束子

1 个答案:

答案 0 :(得分:0)

我添加了一个do,直到只为列添加了计数器为止

    Dim j, x As Integer
    Dim n As Long, r, c As Long
    Dim arrRows, arrColumns As Variant
    Dim Source As Range, Target As Range

    x = 0
    For j = 4 To 18 Step 2

        Set Source = Workbooks("180610_SequencingScenarioTEST1.xlsm").Worksheets(j).Cells
        Set Target = Workbooks("180610_SequencingScenarioTEST1.xlsm").Worksheets("RAW DATA").Cells
        arrRows = Array(5, 10, 15, 23, 28, 33, 38, 43, 48, 53, 61, 66, 71, 79, 84, 89, 94, 102, 107, 112, 117, 122, 127, 135, 140, 148, 153, 158, 166, 171, 179, 184, 189, 194)
        arrColumns = Array(9, 14, 19, 24, 29, 34, 39, 44)

        Do
            c = arrColumns(x)
            For n = 2 To 35

                r = arrRows(n - 2)
                Target.Cells(r, c).Resize(1, 5).Value = WorksheetFunction.Transpose(Source.Cells(4, n).Resize(5, 1).Value)
            Next                                      'for each column being transpose to row in target sheet

            x = x + 1

        Loop Until x <> x + 1                         'for each columns in raw data = the different scenarios
    Next                                              'for j=new sheet
End Sub
相关问题