【发布时间】:2016-02-02 07:48:10
【问题描述】:
我喜欢将一个对象转换成一个字符串。我找到了这个topic,但我无法让它在 Excel 2010 中工作(Excel 似乎不知道“Cast.xxx”、“CArray()”和“Array()”?)
我知道如何转换变体,例如"toString = CStr(x)" 但不是如何为对象做最好的方法
Function toString(ByVal x As Variant) As String
If TypeOf x Is Object Then
toString = ???
Else
toString = CStr(x)
End If
End Function
有什么建议吗?
【问题讨论】:
-
对不起我的无知。 CStr 是否也适用于 Object 。我尝试了一些类似的方法,将我的对象转换为字符串。所以问这个问题
-
不,在某些情况下你会得到一个 excpetion 例如。如果类型是“集合”或“字典”,所以我希望这里的一些专家可能已经编写了一些脚本,可以转换 Excel 中大多数使用的类型
-
你打算只列出对象的属性和方法吗?然后您可以通过在
ScriptControl中执行的for (var oItem in oSample) {oDict.Add(oItem, oSample[oItem]);}之类的JS 代码来检索它们。或者,如果您稍后将字符串转换回对象,请查看 Serialization/Deserialization 和 Marshalling/Unmarshalling。 AFAIK VBA 没有它们的本机实现。无论如何,解决方案取决于对象类型。
标签: excel vba casting typeconverter