角かっことハイフンを含む次の文字列から次の情報を取得するために、いくつかのVBAコードを記述しようとしています。
ACOST 2012の価格表-(PRJ 216664-Financial Serverの廃止)-12か月の期間
VBA for Excel 2007を使用して、この文字列内の次の2ビットを取得し、2つの異なる変数に割り当てる必要があります。
- 216664
- FinancialServerの廃止
構文を試しましたMid()
が、これら2ビットの情報を抽出できませんでした。
角かっことハイフンを含む次の文字列から次の情報を取得するために、いくつかのVBAコードを記述しようとしています。
ACOST 2012の価格表-(PRJ 216664-Financial Serverの廃止)-12か月の期間
VBA for Excel 2007を使用して、この文字列内の次の2ビットを取得し、2つの異なる変数に割り当てる必要があります。
構文を試しましたMid()
が、これら2ビットの情報を抽出できませんでした。
フォーマットが同じままになる場合は、これを使用できます
Sub Sample()
Dim strSample As String
strSample = "ACOST 2012 Pricing Table - (PRJ 216664 - Financial Server Decommission) - 12 Month Term"
strSample = Split(Split(strSample, "(")(1), ")")(0)
Debug.Print Trim(Split(Split(strSample, "-")(0), " ")(1))
Debug.Print Trim(Split(strSample, "-")(1))
End Sub
別の方法;
Data = "ACOST 2012 Pricing Table - (PRJ 216664 - Financial Server Decommission) - 12 Month Term"
dim re As object, matches as object: Set re = createobject("vbscript.regexp")
re.pattern="- \(.*?(\d+)\s+-\s+(.*?)\)(\s|$)"
with re.Execute(Data)
msgBox .item(0).SubMatches(0) & " / " & .item(0).SubMatches(1)
End with
「-」の後の最後の数字のグループを取得します(「-」の前に空白で囲まれ、次まですべてを取得します)その後に空白または行の終わりが続きます」