Search
検索項目のセル参照を見つけるという名前のコードがあります。その後、次を使用して検索値の範囲を取得したいと思います。
Search.Address
vba がアドレスを取得したら、たとえばに変更し$A$1
たいので、戻り値は次のようになります。$A
$M
$M$1
これは可能ですか?
ありがとう!
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
持つ関数が呼び出されます。SwapColumns
s
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