我希望编写一些VBA代码,以便从以下带括号和连字符的字符串中获取以下信息,即
ACOST 2012定价表 - (PRJ 216664 - 金融服务器退役) - 12个月期限
使用VBA for Excel 2007,我需要在此字符串中获得以下两位并分配给两个不同的变量,即:
我尝试了Mid()
语法但无法提取这两个信息。
答案 0 :(得分: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
答案 1 :(得分: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
获取“ - ”之后的最后一组数字 然后是空白然后把所有东西都拿到下一个 空格或行尾“