1

新的一天,新的问题。我得到了很多帮助,希望你也能帮助我。已经四处寻找我的问题的解决方案,但没有找到。

这是我的代码:

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

如您所见,我在列中寻找字符串。当我得到结果时,行号存储在一个数组中。在下一个代码片段中,我在整行中写出命中。是否有可能不是取整行,而是选择要以简单的方式复制该行中的哪些列?

感谢帮助

4

1 回答 1

1

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

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

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

于 2012-07-06T08:30:22.113 回答