【问题标题】:Fill in blank cells of a column within a table填写表格中某一列的空白单元格
【发布时间】:2020-04-28 10:23:40
【问题描述】:

Excel Sheet Example

这更像是一个效率问题。我正在尝试用每月更新的主 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 开始,我希望能够使这种动态化。我的问题是我找不到 JUST A 列的最后一行,因为它在一个表中,最后一行总是会带回第 1150 行而不是 A 列的第 1138 行(请记住,A 列的最后一行会改变每个月都将数据输入到 Excel 表中)[参考图片]。

感谢您的宝贵时间

【问题讨论】:

  • 查看this question 了解如何查找表中的最后一行。
  • 如果您的长列始终是第 7 列...那么在您的代码中...您只需在 7...之前临时插入一个空列...然后您可以在 column 找到最后一行表格1...完成后,您只需删除第7列...。

标签: excel vba


【解决方案1】:

或者:

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

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多