Страницы: 1
RSS
Run-time error '9' Subscript out of range, не могу понять что не так
 
Добрый день!  
У меня несколько номеров телефона в одной ячейке и к ним один счет. Нужно чтобы к лицевому счету подставился каждый номер. Пример в файле. Я воспользовался макросом, он работает, но в конце выдает Run-time error '9' Subscript out of range и выделяет    
ReDim c(1 To UBound(tmp) + 1, 1 To 3). Не могу понять в чем проблема. Помогите, пожалуйста  
У меня макрос записан:  
Sub tt()  
Dim iL As Long, cc As Range, tmp, i As Long  
iL = 1  
For Each cc In [A2:A1000000]
tmp = Split(cc, "/")  
ReDim c(1 To UBound(tmp) + 1, 1 To 3)  
For i = 0 To UBound(tmp)  
c(i + 1, 1) = tmp(i)  
c(i + 1, 2) = cc.Offset(, 1)  
c(i + 1, 3) = cc.Offset(, 2)  
Next  
 
Range("K" & iL).Resize(i, 3).Value = c 'выгружаем результат  
iL = iL + i  
 
Next  
End Sub  
Притом, что он задачу выполняет полность, В чем может быть проблкма?  
 
 
К сообщению прикреплен файл: post_383507.xlsx
 
Пустые ячейки в диапазоне. И слеша я в примере не нашел.  
Sub tt()  
   Dim iL As Long, cc As Range, tmp, i As Long  
   iL = 1  
   For Each cc In [A2:A1000000]
       If cc.Value <> "" Then  
           tmp = Split(cc, "/")  
           ReDim c(1 To UBound(tmp) + 1, 1 To 3)  
           For i = 0 To UBound(tmp)  
               c(i + 1, 1) = tmp(i)  
               c(i + 1, 2) = cc.Offset(, 1)  
               c(i + 1, 3) = cc.Offset(, 2)  
           Next  
 
           Range("K" & iL).Resize(i, 3).Value = c    'выгружаем результат  
           iL = iL + i  
       End If  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
Спасибо, попробую. Я не правильно в примере написал, разделитель /
 
Попробуйте:  
Sub tt()  
   Dim iL As Long, cc As Range, tmp, i As Long  
   iL = 1  
   For Each cc In [A2:A1000000]
       If cc(1, 2).Value <> "" Then  
           tmp = Split(cc(1, 2), ";")  
           ReDim c(1 To UBound(tmp) + 1, 1 To 2)  
           For i = 0 To UBound(tmp)  
               c(1 + i, 1) = cc  
                c(1 + i, 2) = tmp(i)  
           Next  
           Range("K" & iL).Resize(i, 2).Value = c    'выгружаем результат  
           iL = iL + i  
       End If  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
Спасибо большое!!! Все работает
Страницы: 1
Читают тему
Наверх