这里代码实现不只是实现函数多返回值。
借助这个思想,可以实现Excel宏VBA被VBScript代码调用,为什么要用VBS去调用VBA呢?
这段时间碰到了一个棘手的问题,Excel中保存有差不多10万条数据,我想通过字典的形式对这10万条数据存储为Dictionary对象。
'方法1 —— 借助Class
' 定义一个有多个变量成员的类
Class MultiValue
Dim a, b, c
End Class
Function ClassMulti(param1, param2, param3)
Dim oClass
' 实例化类
Set oClass = New MultiValue
oClass.a = param1
oClass.b = param2
oClass.c = param3
' 指定函数返回为oClass对象
Set ClassMulti = oClass
End Function
Dim oClass
Set oClass = ClassMulti("value1","value2","value3")
Msgbox oClass.a & vbCrlf & oClass.b & vbCrlf & oClass.c
'方法2 —— 借助Dictionary对象
Function DictionaryMulti(param1, param2, param3)
Dim oDict
' 创建字典对象
Set oDict = CreateObject("Scripting.Dictionary")
' 增加键名和键值
oDict("a") = param1
oDict("b") = param2
oDict("c") = param3
' 指定函数返回为Dictionary对象
Set DictionaryMulti = oDict
End Function
Dim oDict, sMsg
Set oDict = DictionaryMulti("value1", "value2", "value3")
' 遍历返回的Dictionary中的键
For Each vKey In oDict
sMsg = sMsg & oDict.Item(vKey) & vbCrlf
Next
Msgbox sMsg