【问题标题】:copy specific rows to another sheet just if row contains a value仅当行包含值时才将特定行复制到另一张工作表
【发布时间】:2019-08-12 22:55:51
【问题描述】:

我想根据 A 列的值复制特定的列。

确切地说,我想将工作表 A 的 A、C 和 D 列复制到工作表 B 的 B、C 和 D 列。但只是工作表A 的A 列包含AAAAA 的一方。

这个例子只是为了简化,实际上我有数百行,所以我需要一个必要的循环,在表 B 我想粘贴在标题下:

我的 Excel 工作表的外观:
[][1

Sub COOPPYY()
    Dim N As Long, i As Long, j As Long, s As String
    Dim src As Worksheet
    Dim trg As Worksheet
    Dim LastRow As Long
    Dim c As Range

    N = Cells(Rows.Count, "B").End(xlUp).Row

    ' Change worksheet designations as needed
    Set src = ThisWorkbook.Worksheets("A")
    Set trg = ThisWorkbook.Worksheets("B")

    'For i = 1 To N
    'j = 1

    src.Range("A:A").Copy Destination:=trg.Range("B:B")
    src.Range("C:C").Copy Destination:=trg.Range("D:D")

    src.Range("D:D").Copy Destination:=trg.Range("C:C")
End Sub

第二张纸在我想要复制的位置的样子:

【问题讨论】:

  • 请注意这里全部大写被认为是喊叫,因此非常不友好。
  • Oups .. 真的很抱歉我不是这个意思

标签: excel vba rows copy-paste


【解决方案1】:

类似这样的:

Sub CopyIt()

    Dim N As Long, i As Long, j As Long, s As String
    Dim src As Worksheet
    Dim trg As Worksheet

    Set src = ThisWorkbook.Worksheets("A")
    Set trg = ThisWorkbook.Worksheets("B")

    N = src.Cells(src.Rows.Count, "B").End(xlUp).Row
    j = trg.cells(rows.count, "B").End(xlUp).Row + 1

    For i = 1 To N
        With src.Rows(i)             
            If .cells(1).Value = "AAAAA" Then
                .cells(1).Copy trg.cells(j, "B")
                .cells(3).Resize(1,2).copy trg.cells(j, "C")
                j = j + 1 
            End If
         End With 
     Next i
End Sub

【讨论】:

  • 非常感谢你给了我一个想法,但是我使用这段代码得到了什么:只是复制了“C”和“D”列..我也想复制“A”列..我不知道该怎么做
  • 抱歉复制粘贴修复了第二行。
猜你喜欢
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多