如何更改所选范围?

时间:2015-08-19 07:50:52

标签: excel vba excel-vba range

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

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

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

1 个答案:

答案 0 :(得分:0)

您不必使用Activecell,而只需使用Range objectFor Each statement

For Each c In Range("A1:C3")
    c.Value = c.Value + 1
Next c

如果您不希望将1添加到范围内的空单元格,则只需添加If语句。

If Not c.Value = vbNullString Then

修改

如果您希望能够选择范围,然后运行宏,则可以将选择分配给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的大小,将单元格值加载到数组中并在数组中执行计算可能更有效。