我正在开发小型VBScript,并试图创建scripting.dictionary[]。我必须通过ref将字典数组传递给一个函数。这个函数是我通过编译后的库得到的。函数定义如下。
public string Update(string name, ref Scripting.Dictionary[] Data, string sRecordId = "")我的代码行在这里
Set objQWS = CreateObject("Dll")
Set X = PassDictionary
objQWS.Update "Name", x, ""
MsgBox "Additional Info Sent"
Function PassDictionary()
Dim objDic
Set objDic = CreateObject("Scripting.Dictionary")
objDic.Add "id", 1
objDic.Add "name", "a"
objDic.Add "extd_price", "b"
objDic.Add "sales_rep", "c"
objDic.Add "opportunity_id", "d"
Set PassDictionary = objDic
End Function有问题的区域是Update函数。每次我运行代码,在Update函数上,它给我一个错误“类型不匹配”。谁能告诉我怎么才能让那玩意儿工作?
发布于 2016-03-11 19:49:47
您传递的是单个字典,而不是一组字典。试试像这样的东西
Set x = PassDictionary
arr = Array(x)
objQWS.Update "Name", arr, ""但是,不确定它是否可以工作,因为VBScript并不真正知道类型,所以数组的类型将是Variant()。
您可以尝试的另一件事是将参数的类型从Scripting.Dictionary[]更改为Scripting.Dictionary,因为您只传递了一个字典。
https://stackoverflow.com/questions/35929324
复制相似问题