首页 > 解决方案 > 试图将一行中的特定列复制到另一个工作表中

问题描述

我对 VBA 很陌生。如果 Column O 具有文本“Open”,则尝试复制行中的特定列。已经尝试过下面的代码,它可以工作,除了它复制整行,我只想复制行但仅限于列 E 到 Q。如何插入列范围要求?

Sub Button2_Click()

    Dim c As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("SheetA")
    Set Target = ActiveWorkbook.Worksheets("SheetB")

    j = 3     ' Start copying to row 3 in target sheet
    For Each c In Source.Range("O13:O1500")   ' Do 1500 rows
        If c = "Open" Then
           Source.Rows(c.Row).Copy Target.Rows(j)
           j = j + 1
        End If
    Next c

End Sub

标签: excelvbacopy

解决方案


Intersect(Source.Rows(c.Row), Source.Range("E:Q")).Copy Target.Rows(j)

或者

Source.Range("E:Q").Rows(c.Row).Copy Target.Rows(j)

推荐阅读