我正在使用For Each循环遍历VB6中的Variant数组。有一次,我想将循环元素(elem)转换为Node。
Dim elem as Variant
For Each elem In ndArray
Dim nodle As Node
nodle = CType(elem , Node)
Next
这不是整个循环,但它让你知道我正在尝试做什么。当我运行此代码时,我收到一条错误,指出“未定义变量”,它指向CType方法中的“节点”。这不是一个变量,它是一个类型,方法应该知道,因为它需要一个类型。
我尝试跳过CType方法并只是生成nodle = elem,但是我收到一条错误,说“对象变量或没有定义块变量”。我在表达式前面添加了Set关键字,并将错误更改为“Object required”
当我调试并查看elem变量时,它似乎包含一个有效的Node值。
任何人都知道这里发生了什么?这种转换甚至可能吗?
任何建议都将不胜感激。
答案 0 :(得分:0)
尝试添加Set
?
Set nodle = CType(elem , Node)
如果Set
是对象类型且Node
将包含对象引用,则必须 nodle
。如果省略Set
,编译器会假定您要更改Node
对象的默认属性。