-1

はは!私はまだあなたを困惑させますExcelの達人。;-D

いくつかの区切りテキストに基づいて選択範囲の境界を設定したいと思います。

Cells.Findを実行すると、ワークシート全体が検索され、複数のインスタンスが見つかります。私が見つけたいのは、おそらく区切り文字の3番目または4番目のインスタンスです。実際には、特定の列Bにあります。ただし、これは連続していない範囲であり、列の実際の検索開始は数百セル下にあります。

その列内を検索し、再利用可能な範囲の開始変数を区切り文字セル(区切り文字セルを含まない)に設定するにはどうすればよいですか?私はこれを試しました:

Dim selectionStart As Range, selectionEnd As Range
Dim currentCell As Range, dataRange As Range
Dim lastRow As Range, insertRows As Range, destinationCell As Range

Range("b1", Range("b65536").End(xlUp)).Select

Set selectionStart = Selection.Find(What:="<-RANGE START->", After:=ActiveCell, LookIn _
    :=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
   xlNext, MatchCase:=False, SearchFormat:=False)

範囲を選択しますが、変数は設定しません。

私はこれらすべてのことを厄介に大きく試しているので、あまり目が疲れることなくそれらが何をするのかを見ることができます。エレガンスは必要ありません。

TIA

4

1 に答える 1

1

これのことですか?

Option Explicit

Sub test()

Dim selectionStart As Range, selectionEnd As Range
Dim currentCell As Range, dataRange As Range
Dim lastRow As Range, insertRows As Range, destinationCell As Range
Dim rngtoSearch As Range
Dim foundValue As Variant
Dim foundAddress As String
Dim foundRow As Long

With sheetWhatever 'change to whatever sheet codename required
    Set rngtoSearch = .Range("b1", .Range("b65536").End(xlUp))

    Set selectionStart = rngtoSearch.Find(What:="<-RANGE START->", LookIn _
        :=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
       xlNext, MatchCase:=False, SearchFormat:=False)

    'check it actually found a range
    If Not selectionStart Is Nothing Then
        'If found set the variable
        foundValue = selectionStart.Value 'set as value
        foundAddress = selectionStart.Address 'set as address string
        foundRow = selectionStart.Row ' set as row
    End If

End With


End Sub
于 2012-09-19T00:23:14.027 に答える