使用列索引,如何复制特定列

时间:2012-07-06 07:09:38

标签: excel excel-vba vba

新的一天,新问题。 我收到了很多帮助,希望你也可以帮助我。我一直在寻找我的问题的解决方案,但没找到。

这是我的代码:

SearchString = "start"
    Set aCell = phaseRange.Find(What:=SearchString, LookIn:=xlValues, _
            LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
    Set bCell = aCell
    ReDim Preserve arrStart(nS)
    arrStart(nS) = aCell.Row
    nS = nS + 1
    Do While ExitLoop = False
        Set aCell = phaseRange.FindNext(After:=aCell)
        If Not aCell Is Nothing Then
            If aCell.Row = bCell.Row Then Exit Do
            ReDim Preserve arrStart(nS)
            arrStart(nS) = aCell.Row
            nS = nS + 1
        Else
            ExitLoop = True
        End If
    Loop
Else
End If

写出来:

For i = 1 To nS - 1
        Sheets("DataSheet").Select
        Sheets("raw_list").Rows(arrStart(i)).Copy
        Cells(i, 1).Select
        ActiveSheet.Paste
Next

如您所见,我在列中搜索String。当我得到一个结果时,行号存储在一个数组中。在下一个代码片段中,我在整行中写出了匹配。是否有可能不是采用整行,而是以简单的方式选择要复制的行中的哪些列?

感谢帮助

1 个答案:

答案 0 :(得分:1)

如果你已经知道了列号,并且你有数组中的行,那么试试这个

Sheets("raw_list").Cells(arrStart(i),5).Copy

这将复制特定行中第5列(Col E)的单元格。