Заполните пустые ячейки столбца в таблице - PullRequest
0 голосов
/ 28 апреля 2020

Пример листа Excel

Это скорее вопрос эффективности. Я пытаюсь заполнить пустые ячейки датой в указанном столбце c основного листа Excel, который обновляется ежемесячно. Данные вводятся за пределами столбца A сначала из дочерней книги, поэтому я могу использовать строку строки последней строки. Вот мой код:

    fillDate = Format(Date, "Mmm-YY")
    If fillDate <> vbNullString Then
        For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
            If Range("A" & i).Value = vbNullString Then
                Range("A" & i).Value = fillDate
            End If
        Next i
   End If

И это прекрасно работает, но мне интересно, как сделать это более эффективным? Вместо того, чтобы начинать с i = 1 каждый раз, когда я хотел бы сделать эту динамику c. Моя проблема в том, что я не могу найти последнюю строку столбца JUST A, поскольку она находится в таблице, а последняя строка всегда возвращает строку 1150 вместо строки 1138 столбца A (учитывая, что последняя строка столбца A изменится каждый месяц, когда данные вводятся в таблицу Excel) [см. изображение].

Спасибо за потраченное время

1 Ответ

1 голос
/ 28 апреля 2020

В качестве альтернативы:

Sub tester()
    Dim rng As Range
    With ActiveSheet.ListObjects("Table1").ListColumns("MyDateCol").DataBodyRange
        On Error Resume Next 'ignore error if no blanks
        Set rng = .SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
        If Not rng Is Nothing Then rng.Value = Format(Date, "Mmm-YY")
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...