建立一個 VB6 DLLFunction TEST() AS Variant  Dim G as Variant  G = Split("1,2,3,4,5,6",",")  Test = G
   
End Function
==========================若在 VB6 下寫Private Sub Command1_Click()   Set O = CreateObject("Project1.Class")   Text1.text = Join( O.Test, "," )End sub----- >  Join() 並不會出錯但是若是在 VBscript  下寫
就會產生錯誤訊息 : 此變數 (就是指 O.Test) 使用了 VBscript 所不支援的 Automation 型態不知問題在哪裡而且在 VBscript 下寫G = Split("1,2,3,4,5,6",",")
Y = Join(G,",")也不會有問題

解决方案 »

  1.   

    如果你用 TypeName(O.Test),就会返回 String(),说明它是一个 String 数组,而 VBScript 只支持 Variant 数组。如果需要被 VBScript 调用,Test 函数必须将数组转换成 Variant 成员类型
    Function TEST() As Variant
        Dim G As Variant
        Dim GV() As Variant, i As Long
        
        G = Split("1,2,3,4,5,6", ",")
        
        ReDim GV(UBound(G))
        For i = 0 To UBound(G)
            GV(i) = G(i)
        Next
        
        TEST = GV
    End Function
      

  2.   

    原来 Split 会自己传回适当型态 我以为Dim G As Varinat就可以让  Split 传回 Varinat 型态有观察 小视窗  可看到型态是 Variant / String
    原来还是要看 "后面的 String"
    ====3Q ^^
      

  3.   

    Variant 只是一个标准集装箱,不决定里面必须装什么东西。给服装厂一集装箱汽车配件肯定是不行的。