1

I usually use variants when I need an array:

Sub test()   'runs fine
    Dim s
    s = Array("a", "b", "c")
    Debug.Print s(1)
End Sub

Now I want performance for a specific case, so I thought I could save a few millisec by using a String array. How do I do that?

My try:

Sub test2()
    Dim s() As String
    s = Array("a", "b", "c")     'run time error 13: type mismatch
    Debug.Print s(1)
End Sub 

Thanks.

iDevlop
  • 24,841
  • 11
  • 90
  • 149

1 Answers1

3

Try this:

Sub test2()
    Dim s1 As Variant
    Dim s2() As String
    s1 = Array("a", "b", "c")
    s2 = Split("a,b,c", ",")

    Debug.Print VarType(s1) & " Array of variants"
    Debug.Print VarType(s2) & " Array of strings"
End Sub

Output:

8204 Array of variant
8200 Array of string
SBF
  • 1,252
  • 3
  • 12
  • 21