我正在寻找编写一些VBA代码来从以下带有括号和连字符的字符串中获取以下信息,即
ACOST 2012 定价表 -(PRJ 216664 - 金融服务器退役) - 12 个月期限
使用 Excel 2007 的 VBA,我需要在此字符串中获取以下两位并分配给两个不同的变量,即:
- 216664
- 金融服务器退役
我尝试了Mid()
语法,但无法提取这两个信息。
我正在寻找编写一些VBA代码来从以下带有括号和连字符的字符串中获取以下信息,即
ACOST 2012 定价表 -(PRJ 216664 - 金融服务器退役) - 12 个月期限
使用 Excel 2007 的 VBA,我需要在此字符串中获取以下两位并分配给两个不同的变量,即:
我尝试了Mid()
语法,但无法提取这两个信息。
如果格式将保持不变,那么您可以使用它
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
获取“-”之后的最后一组数字(“-”之前的“-”被空格包围,然后将所有内容移至下一个),然后是空格或行尾”