正規表現、つまりRegexpは私が思っているものです。
次のパターン
([A-Z0-9]*)!(\${0,1})([A-Z]{1,3})(\${0,1})([0-9]*)
"シート1!A $ 1"、 "シート1!A1"、 "シート1!$ A $ 1"、 "シート1!$ A1" のようなものにマッチします
を
説明:
あなたは簡単にあなたが望むものに一致するようにそのパターンを変更することができます。特に、([A-Z0-9] *)!(\ $ {0,1})B(\ $ {0,1})1は、B($) 文字列操作でRegexpパターンを構築してください。
あなたは、これはあなたの目標を達成するために、すべてのツールを与える必要があります(ツール>リファレンス)
次のコードを試してみてください「5.5は、Microsoft VBScriptの正規表現」参照する必要があります
Sub ReplaceReference()
' Reference: Microsoft VBScript Regular Expressions 5.5
Dim RegEx As Object
Set RegEx = New RegExp
Dim s As String
' Here I have hardcoded the reference to the original cell for demonstration purposes
s = "Sheet1!$AB$2"
' Replacement: New sheetname, New Column, new row number
Dim NewCol As String, NewRow As String
NewCol = "C"
NewRow = "10"
Dim NewSheet As String
NewSheet = "Sheet2"
With RegEx
.Pattern = "([A-Z0-9]*)!(\${0,1})([A-Z]{1,3})(\${0,1})([1-9]*)"
.IgnoreCase = True
.Global = True
End With
Debug.Print RegEx.Replace(s, NewSheet & "!" & "$2" & NewCol & "$4" & NewRow)
End Sub
乾杯、 Julien
(相対/固定行/固定行/固定行+ col)を置き換える必要がある参照/アドレスの4種類しかないように見えます。それに応じて交換住所) –
ええ、私は他の方法を見ることができません、それは少しclunkyように残念です。ご協力いただきありがとうございます! –
私はそれらが唯一の変種ではないと思います - 名前付き範囲も含めませんか?それとも別々の参照として数えられていますか? –