⑴ VBA 如何保存变量
代码和数据是分开的,VBA无法在程序里面存储变量的值,除了使用你说到的存储到表格中之外,还可以选择的方法是存储到注册表或本地文本文件中。
⑵ vba表达式
IF(logical_test,value_if_true,value_if_false)
Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。例如,A10=100 就是一个逻辑表达式,如果单元格 A10 中的值等于 100,表达式即为 TRUE,否则为 FALSE。本参数可使用任何比较运算符。
Value_if_true logical_test 为 TRUE 时返回的值。例如,如果本参数为文本字符串“预算内”而且 logical_test 参数值为 TRUE,则 IF 函数将显示文本“预算内”。如果 logical_test 为 TRUE 而 value_if_true 为空,则本参数返回 0(零)。如果要显示 TRUE,则请为本参数使用逻辑值 TRUE。Value_if_true 也可以是其他公式。
Value_if_false logical_test 为 FALSE 时返回的值。例如,如果本参数为文本字符串“超出预算”而且 logical_test 参数值为 FALSE,则 IF 函数将显示文本“超出预算”。如果 logical_test 为 FALSE 且忽略了 Value_if_false(即 value_if_true 后没有逗号),则会返回逻辑值 FALSE。如果 logical_test 为 FALSE 且 Value_if_false 为空(即 value_if_true 后有逗号,并紧跟着右括号),则本参数返回 0(零)。Value_if_false 也可以是其他公式。
⑶ vba中用正则表达式提取数值给数组,求表达式
VBA Code(假设在 Excel 的活动工作表的 A1 单元格中存储着上述 Json 字符串):
OptionExplicit
SubExtractJsonData()
DimobjRegExpAsObject
DimobjMatchAsObject
DimobjMatchesAsObject
SetobjRegExp=CreateObject("VBScript.RegExp")
WithobjRegExp
.IgnoreCase=True
.Global=True
.Pattern="""issue"":""(d+?)"",""opennum"":""(.*?)"""
If.Test([A1])Then
SetobjMatches=.Execute([A1])
ForEachobjMatchInobjMatches
Debug.PrintobjMatch.SubMatches(0);objMatch.SubMatches(1)
Next
EndIf
EndWith
EndSub
运行结果:
表达式就是代码中的 Pattern 属性值
⑷ 求助VBA 正则表达式问题 很奇怪的一个问题
居然在这里又来一遍
http://..com/question/351028452.html
⑸ 如何在vba中运行表达式
Public Sub sda()
MsgBox Application.Evaluate("2*5+100")
End Sub