Автор Тема: Excel VBA. Автозаполнение пустых ячеек датами из предыдущей ячейки с помощью макроса.  (Прочитано 238 раз)

Оффлайн Uorden

  • Посетитель форума
  • Сообщений: 2
Из одного файла у меня загружается столбик с датами в другой. Некоторые ячейки в том столбике объединены. При выгрузке их на лист объединение удаляется и остается энное количество пустых ячеек.
Я хочу сделать так, что бы они заполнялись предыдущим значением даты.

Через цикл if при указании через range ("q" & i).value = range ("q" & (i-1)).value у меня пустые ячейки не заполняются.
Если задаю данному столбцу через dim as date, то все ячейки заполняются как 00.01.1900 (пустые и заполненные).
Пробовал через autofill destination - не получается.

[вложение удалено администратором]

Онлайн Администратор

  • Administrator
  • Сообщений: 1637
Макрос
Sub Макрос()
   
    Dim arr(), i As Long
   
   
    '1. Копирование данных из экселя в vba-массив. При большом кол-ве данных с vba-массивом
        ' макрос быстрее работает чем с эксель-ячейками.
    arr() = Range("A2:A10").Value
   
    '2. Заполнение пустых ячеек данными из верхних ячеек.
    ' Двигаемся со второй строки, т.к. предполгается, что в первой строке есть данные.
    For i = 2 To UBound(arr)
        If arr(i, 1) = "" Then
            arr(i, 1) = arr(i - 1, 1)
        End If
    Next i
   
    '3. Вставка изменённого массива обратно на лист.
    Range("A2").Resize(UBound(arr)).Value = arr()
   
    '4. Сообщение.
    MsgBox "Готово.", vbInformation

End Sub

Оффлайн Uorden

  • Посетитель форума
  • Сообщений: 2
Спасибо огромное. Все заработало!!!