VBA将粘贴复制到新工作表中,如果声明并转置

问题描述 投票:0回答:1

当列D等于“ Y”时,我从列E1:F1复制行。以转置格式粘贴到Sheet2中。循环直到Sheet1的D列结束。当我编辑代码以粘贴到G12中(而不是A1)时,它将相互粘贴值,而不是向下移动到G列中的下一个空白单元格。

我不知道代码在哪里错误。请帮忙!

''''

Sub CopyPaste3()

Dim row As Integer
Dim lastrow As Integer
Dim r As Integer
Dim S1 As Worksheet
Dim S2 As Worksheet


Set S1 = Worksheets("Sheet1")
Set S2 = Worksheets("sheet2")
row = 1
rowg = 12
lastrow = S1.Range("A" & Rows.Count).End(xlUp).row

For r = 2 To lastrow
    If S1.Range("D" & r).Value = "Y" Then
        S1.Range("E1:F1").Rows(r).Copy

        S2.Activate
        S2.Cells(12, 7).Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        rowg = S2.Range("G" & Rows.Count).End(xlUp).row + 1
    End If
Next r
End Sub 

''''

当列D等于“ Y”时,我从列E1:F1复制行。以转置格式粘贴到Sheet2中。循环直到Sheet1的D列结束。当我编辑代码以粘贴到G12中(而不是A1)时...

vba if-statement copy transpose paste
1个回答
0
投票

我将如何去做:

© www.soinside.com 2019 - 2024. All rights reserved.