2014-02-19 6 views
0

я следующий код:Статический или динамический массив

Sub nummm() 

    Dim num() As String 

    For x = 2 To 1000 
     c = 0 
     ReDim Preserve num(UBound(Split(Cells(x, 7).Value, " ")) + 1) 
     num = Split(Cells(x, 7).Value, " ") 

     For Each b In num 
      c = c + 1 
      If c = UBound(num) + 1 Then GoTo vv: 
     Next 

vv: 
    Next 

End Sub 

Это работает отлично, если удалить линию

If c = UBound(num) + 1 Then GoTo vv: 

, но если он не удаляется, я получаю ошибки времени выполнения: «Этот массив фиксированный или временно заблокированный " Как я могу сделать переменную num dynamic? ТНХ помощь

ответ

2

Я не знаю, как ваши b и другие переменные (кроме num) объявлены, но, возможно, это может помочь вам:

Sub nummm() 

    Dim num As Variant 'So you can directly assign the array from Split 

    For x = 2 To 1000 
     c = 0 
     num = Split(Cells(x, 7).Value, " ") 

     For Each b In num 
      c = c + 1 

      'Rather than "GoTo somewhere", "Exit For" will exit the current For loop 
      If c = UBound(num) + 1 Then Exit For 
     Next b 

    Next x 

End Sub 
+1

+1 для выхода на :) –

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