Vba 从具有相同目标的不同工作表复制粘贴

Vba 从具有相同目标的不同工作表复制粘贴,vba,for-loop,copy,paste,next,Vba,For Loop,Copy,Paste,Next,我必须做相同的复制粘贴,但更多的列是在不同的工作表(4,6,8等),而不是在顺序就像j 行正在与arrRows一起工作(谢谢Tinman) 但是对于列,我尝试了3个for(一个用于工作表,一个用于列,一个用于行)不起作用,因为它不会跳转到下一个j(在完成所有n之后,只会跳转到下一列),而不是下一个工作表(这是我需要的) 我尝试了另一个路径(当前代码),我找不到一个序列,用j作为变量可以处理列中的正确数字..也许我可以做一个do..循环 GHM小组() 下一个 End Sub我添加了一个do,

我必须做相同的复制粘贴,但更多的列是在不同的工作表(4,6,8等),而不是在顺序就像j

行正在与arrRows一起工作(谢谢Tinman)

  • 但是对于列,我尝试了3个for(一个用于工作表,一个用于列,一个用于行)不起作用,因为它不会跳转到下一个j(在完成所有n之后,只会跳转到下一列),而不是下一个工作表(这是我需要的)

  • 我尝试了另一个路径(当前代码),我找不到一个序列,用j作为变量可以处理列中的正确数字..也许我可以做一个do..循环

GHM小组()

下一个


End Sub

我添加了一个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
Dim j,x为整数
变暗n为长,r、c为长
标注arrRows,arrColumns作为变量
变暗源作为范围,目标作为范围
x=0
对于j=4到18,步骤2
设置源=工作簿(“180610_SequencingScenarioTEST1.xlsm”)。工作表(j)。单元格
设置目标=工作簿(“180610_SequencingScenarioTEST1.xlsm”)。工作表(“原始数据”)。单元格
arrRows=数组(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=数组(9,14,19,24,29,34,39,44)
做
c=ARR列(x)
对于n=2到35
r=arrRows(n-2)
Target.Cells(r,c).Resize(1,5).Value=WorksheetFunction.Transpose(Source.Cells(4,n).Resize(5,1).Value)
“下一步”用于将每列转置到目标工作表中的行
x=x+1
循环,直到原始数据中的每一列的x+1'为止=不同的场景
j的下一页=新页
端接头
    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