【问题标题】:VBA: Filling blank cells with the value above it plus oneVBA:用上面的值加一填充空白单元格
【发布时间】:2019-07-11 05:24:11
【问题描述】:

我有 5 张有空白单元格的工作表,我需要用上面的值加 1 来填充它们。例如:A 列有 1,2, ,4,5,我需要一个将其设为 1 的代码, 2,3,4,5

我尝试了一个我在网上找到的代码,但它只是复制了上面的值。

Sub FillBlanks()
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub

我需要填写所有的空白。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您可以在没有 VBA 的情况下做到这一点。

    选择范围,按 F5 打开 Go To 对话框,点击 Special 并在下一个对话框中勾选 Blanks 并点击 OK。这将选择所选范围内的所有空白单元格。

    现在,在不更改选择的情况下,输入= 符号,然后点击键盘上的向上箭头,然后输入+1。按住 Ctrl 键并按 Enter

    如果还想用VBA,把最后一行代码改成

    Selection.FormulaR1C1 = "=R[-1]C+1"
    

    这将为您提供与手动方法相同的结果。

    【讨论】:

      【解决方案2】:

      通过尽可能避免使用Select,您的程序会更简单、更快并且更高效。这是一个正确的程序:

      Sub FillBlanks()
      Columns("A:A").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C+1"
      End Sub
      

      要应用于工作簿中的所有 5 张工作表:

      Sub FillBlanks()
      Dim ws as Worksheet, LastRow as Long
      On Error Resume Next
      For Each ws in ThisWorkbook.Worksheets
          LastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
          ws.Range("A1:A" & LastRow).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C+1"
      Next ws
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-09
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 2013-08-25
        • 1970-01-01
        相关资源
        最近更新 更多