2016-04-20 3 views
0

Ранее он работает отлично, но теперь данные не хранить в массиве и то же магазин в rng1 я могу проверить в dubug окна по ? Rng1 (1,1) или? Rng1 (39,4), но vArray дает диапазон индексов ошибок.Значение не сохраняется в динамическом массиве

Dim vArray() As Variant 
Dim rng1 As Range 
Dim ShNm As String 
Dim lROW AS LONG 

ShNm = Sheets("Main").Range("G3") 

lRow = Worksheets(ShNm).Cells(Rows.Count, 1).End(xlUp).Row 

Set rng1 = Worksheets(ShNm).Range("A1:D" & lRow) 

vArray = Worksheets(ShNm).Range("A1:D" & lRow) 
or   
vArray = Worksheets(Sheets("Main").Range("G3")).Range("A1:D39") 
or 
vArray = Worksheets("ListofSheets").Range("A1:D39") 

ответ

1

Попробуйте это:

vArray = Worksheets("ListofSheets").Range("A1:D39").Value2 
+0

Это работает ... Спасибо! но что такое синтаксис value2, где я могу получить помощь или больше объяснений по этому поводу. –

+0

Если у вас есть вопросы в Excel VBA о чем-то, просто выделите слово, на которое вы ищете помощь (в этом случае выделите «Value2'), а затем нажмите« F1 ». – Ralph

+0

'.Value', вероятно, также будет работать. '.Value2' только быстрее, чем' .Value'. Поэтому я предпочитаю его и [если вы не имеете дело с датами или валютами] (https://msdn.microsoft.com/en-us/library/office/ff193553%28v=office.15%29.aspx), тогда есть нет разницы. – Ralph