1

我正在寻找编写一些VBA代码来从以下带有括号和连字符的字符串中获取以下信息,即

ACOST 2012 定价表 -(PRJ 216664 - 金融服务器退役) - 12 个月期限

使用 Excel 2007 的 VBA,我需要在此字符串中获取以下两位并分配给两个不同的变量,即:

  • 216664
  • 金融服务器退役

我尝试了Mid()语法,但无法提取这两个信息。

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 回答