1

角かっことハイフンを含む次の文字列から次の情報を取得するために、いくつかのVBAコードを記述しようとしています。

ACOST 2012の価格表-(PRJ 216664-Financial Serverの廃止)-12か月の期間

VBA for Excel 2007を使用して、この文字列内の次の2ビットを取得し、2つの異なる変数に割り当てる必要があります。

  • 216664
  • FinancialServerの廃止

構文を試しましたMid()が、これら2ビットの情報を抽出できませんでした。

4

2 に答える 2

4

フォーマットが同じままになる場合は、これを使用できます

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
于 2012-06-21T15:07:26.200 に答える
0

別の方法;

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

「-」の後の最後の数字のグループを取得します(「-」の前に空白で囲まれ、次まですべてを取得します)その後に空白または行の終わりが続きます」

于 2012-06-21T15:53:09.190 に答える