我有一个增加所选单元格中的值的宏。
Sub add_1_to_the_selected_cell()
ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 + 1
End Sub
我想编写一个宏,不仅会更改一个单元格而且会更改所选范围。怎么做?
答案 0 :(得分:0)
您不必使用Activecell
,而只需使用Range
object和For 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
的大小,将单元格值加载到数组中并在数组中执行计算可能更有效。