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番目の列(列E)からセルがコピーされます。

于 2012-07-06T08:30:22.113 に答える