Страницы: 1
RSS
VBA. Циклично копировать значение строки до следующей.
 
Привет!
Нужна помощь знатоков VBA. Файл прикрепил.

Дело в том, что копировать от строки до строки очень и очень долго, в примере лишь часть файла, а по факту он огромен.
Нужен макрос, который копировал бы значение строки до тех пор, пока не появится иное значение. А затем копировал это иное значение пока не появится третье и так далее.

Начало таблицы всегда одинаковое, однако количество фамилий (строк соответственно) постоянно меняется.
 
Если таблица с 9 строки, если шапка таблицы из 3 слитых строк, то можно таким макросом:
Код
Sub ProfessionsManyTimes()
    Dim arrIn, lngI As Long
    arrIn = ActiveSheet.Range("A12").CurrentRegion.Value
    For lngI = 5 To UBound(arrIn, 1)
        If arrIn(lngI, 4) = "" Then arrIn(lngI, 4) = arrIn(lngI - 1, 4)
    Next
    Range("A9").Resize(UBound(arrIn, 1), UBound(arrIn, 2)) = arrIn
End Sub
Изменено: Пытливый - 22.10.2019 08:47:47
Кому решение нужно - тот пример и рисует.
 
Если правильно понял
Код
Sub test()
    For i = 12 To .Cells(.Rows.Count, 5).End(xlUp).Row
        If Cells(i, 4) = "" Then
           Cells(i - 1, 4).Copy
           Cells(i, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
    Next
End Sub
 
Пытливый, Андрей_26, вы просто гении!
 
Я бы немного не так клонировал
Код
   If Cells(i, 4).Value = "" Then Cells(i, 4).Value = Cells(i - 1, 4).Value
Страницы: 1
Наверх