2017-12-20 2 views
0

내가 배열을 필요로 할 때 나는 보통 변종을 사용에서 문자열 배열을 정의제대로 VBA

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

가 지금은 특정 경우에 대한 성능을 원하는을, 그래서 내가 문자열 배열을 사용하여 몇 millisec을 절약 할 수 있다고 생각. 어떻게해야합니까?

내 시도 :

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

감사합니다.

+2

어레이() 함수 배열을 포함하는 변형을 반환한다. – SBF

+0

[이 질문] (https://stackoverflow.com/questions/19369132/declare-and-initialize-string-array-in-vba)을 보았습니까? – dee

답변

1

이 시도 :

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 

출력 :

8204 Array of variant 
8200 Array of string 
+0

우수! 그것은 정확하게 나의 경우를 다루며 배열을 보너스로 코딩하기가 더 쉽습니다. 내가 지금보아야하는 것은 그것이 더 빠르면 :-) –

+0

이상하게도 '순수 문자열'버전이 느린 것 같습니다. –