如何更改选择的范围?
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
的大小,将单元格值加载到数组中并在数组中执行计算可能会更有效。
我有一个宏可以增加所选单元格中的值。
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
的大小,将单元格值加载到数组中并在数组中执行计算可能会更有效。