매크로 속도를 향상시킬 때 As Long이 As Variant보다 훨씬 우수하다는 것을 알았습니다.As에서 As 로의 Listbox 코드
Dim data1() As Variant
data1 = Array("a", "b", "c", "d", "e")
Sheet1.ListBox1.List = data1
내가 길기로 바꿀 때 코드가 더 이상 작동하지 않습니다.
매크로 속도를 향상시킬 때 As Long이 As Variant보다 훨씬 우수하다는 것을 알았습니다.As에서 As 로의 Listbox 코드
Dim data1() As Variant
data1 = Array("a", "b", "c", "d", "e")
Sheet1.ListBox1.List = data1
내가 길기로 바꿀 때 코드가 더 이상 작동하지 않습니다.
배열에 Long
이 포함되어 있지 않습니다. 배열에 String
이 포함되어 있습니다. 시도하십시오 Dim data1() As String
. (걱정하지 마세요. As Variant
보다 여전히 빠릅니다.)
명시 적 유형은 인 반면 일반적으로 (거의 항상)이 더 좋습니다. 이 경우는 속성이 ListBox
이므로 Variant array
이므로 String
또는 Long
배열을 할당하면 암시 적 타입 캐스트가 발생하므로 더 빠르지 않으며 느려질 수도 있습니다.
ListBox
에 할당하기 전에 배열에 데이터를로드하는 방법이 달라질 수 있습니다. thats을 사용하면 명시 적으로 형식화 된 배열을 더 효율적으로 사용할 수 있습니다. Array(...)
가 명시 적으로 형식화 된 배열에 할당 할 수없는 Varaint array
을 반환하기 때문에
Dim data1() as long
data1 = Array(1, 2, 3, 4, 5)
이 작동하지 않습니다.
답변 중 하나가 도움이 되셨다면 수락을 고려해보십시오 (우수 답변의 왼쪽에있는 녹색 체크 표시를 클릭하십시오). – michaelb958