首页 文章

根据第三列的数据将一列中的数据复制到另一张纸上的不同列

提问于
浏览
0

所以,我对VBA很新,我很难找到我认为应该是一个相当简单的问题的答案 .

我有一个有2张的工作簿,我们称之为Sheet1和Sheet2 .

我想将Sheet1上的B,D和E列数据复制到Sheet 2上A,B和C列中的第一个可用行,并进行以下更改:

Sheet1 Sheet2
Col E Col A.
Col D Col B.
Col B Col C.

但是,如果Sheet1列I中每行的单元格值为“Y”,我只希望复制数据 .

我还没有任何代码 .

更新:从响应中获取建议后,我运行了一条宏记录并得到了这个:

Sub VBlk()
    '
    ' VBlk Macro
    ' V Block Copy
    '

    '
        Range("B2").Select
        Selection.Copy
        Sheets("Sheet2").Select
        Range("C3").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
SkipBlanks _
            :=False, Transpose:=False
        Range("B3").Select
        Sheets("Sheet1").Select
        Range("D2").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Sheet2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("Sheet1").Select
        Range("E2").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Sheet2").Select
        Range("A3").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub

1 回答

  • 3

    尝试下面的代码(希望它有帮助):

    Sub test()
    
            Dim ws1 As Worksheet
            Dim ws2 As Worksheet
            Set ws1 = Sheets("sheet1")
            Set ws2 = Sheets("sheet2")
    
            'get the Last non empty row in sheet1 based on Column B
            lastrow1 = ws1.Cells(Rows.Count, 2).End(xlUp).Row
    
    
            For i = 1 To lastrow1
                'get the Last non empty row in sheet2 based on Column A
                lastrow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
                If ws1.Range("I" & i).Value = "Y" Then
                    ws2.Range("A" & lastrow2 + 1).Value = ws1.Range("E" & i)
                    ws2.Range("B" & lastrow2 + 1).Value = ws1.Range("D" & i)
                    ws2.Range("C" & lastrow2 + 1).Value = ws1.Range("B" & i)
                End If
            Next i
    
        End Sub
    

相关问题