1

Search検索項目のセル参照を見つけるという名前のコードがあります。その後、次を使用して検索値の範囲を取得したいと思います。

Search.Address

vba がアドレスを取得したら、たとえばに変更し$A$1たいので、戻り値は次のようになります。$A$M$M$1

これは可能ですか?

ありがとう!

4

3 に答える 3

2
Sub Main()

    Dim rangeAddress As String

    rangeAddress = Range("A1").Address

    Debug.Print "Before conversion: " & rangeAddress

    SwapColumn rangeAddress, "M"

    Debug.Print "After conversion: " & rangeAddress
End Sub

Private Sub SwapColumn(ByRef r As String, ByVal newCol As String)
    Dim arr As Variant
    arr = Split(r, "$")
    r = vbNullString
    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        If i = 1 Then
            r = "$" & r & newCol & "$"
        Else
            r = r & arr(i)
        End If
    Next i
End Sub

Main()サブを実行し、イミディエイト ウィンドウを確認しますCTRL+G

ここに画像の説明を入力


または、このようなスプレッドシート関数として使用します

=SwapColumns(A1, "M")

コードをモジュールに追加する

注: Sub が呼び出され、最後に aをSwapColumn持つ関数が呼び出されます。SwapColumnss

Function SwapColumnS(r As Range, newCol As String) As String
    Dim rngAddress As String
    rngAddress = r.Address
    Dim arr As Variant
    arr = Split(rngAddress, "$")
    rngAddress = vbNullString
    Dim i As Long
    For i = LBound(arr) To UBound(arr)
        If i = 1 Then
            rngAddress = "$" & rngAddress & newCol & "$"
        Else
            rngAddress = rngAddress & arr(i)
        End If
    Next i
    SwapColumnS = rngAddress
End Function

ここに画像の説明を入力

于 2013-10-10T11:00:18.490 に答える