2013-05-31 1 views
0

Я получаю эту ошибку VBA типа Mismatch на линии 3, но она работает очень хорошо, если массив короче, как A3:A52. Это потому, что размер массива ограничен?Ошибка несоответствия типа для большого массива

Dim varry() As Variant 
varry = [A2:A520000&G2:G520000] 
UserForm1.Label1.Caption = Application.Match(CLng(DateValue("5/14/2013")) & "YUM", varry, 1) & " " & Timer - t 
UserForm1.Show vbModeless 
DoEvents 
End Sub 

ответ

2

Его ограничение Application.Match при пропускании Array. Максимальный размер массива, который он будет обрабатывать, составляет 65536.

Если вы передаете Range, он будет обрабатывать длиннее данные: например

Dim r As Range 
Set r = [A1:A520000] 
result = Application.Match(YourSearchTerm, r, 1) 

Я знаю, не является полным решением для Вашего случая, учитывая вы конкатенация два диапазона в массив, но вы можете быть в состоянии разработать решение, реорганизующее более широкое применение ваших требований ...

Смежные вопросы