如何更改选择的范围?

How to change the selected range?

我有一个宏可以增加所选单元格中的值。

Sub add_1_to_the_selected_cell()
    ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 + 1
End Sub

而且我想编写一个宏,它不仅可以更改一个单元格,还可以更改所选范围。怎么做?

您只需使用 Range object and a For Each statement.

而不是使用 Activecell
For Each c In Range("A1:C3")
    c.Value = c.Value + 1
Next c

如果范围内有您不想添加 1 的空单元格,则只需添加 If 语句即可。

If Not c.Value = vbNullString Then

编辑:

如果你想能够select范围,然后运行宏,你可以将你的select离子分配给一个Range,然后遍历 Range.

Sub add1()
    Dim rngSelection As Range
    Set rngSelection = Selection

    For Each c In rngSelection
        If Not c.Value = vbNullString Then
            c.Value = c.Value + 1
        End If
    Next c
End Sub

根据您希望重新执行此操作的 Range 的大小,将单元格值加载到数组中并在数组中执行计算可能会更有效。