首页 > 解决方案 > 使用一个按钮,我只想为一个选定的单元格添加值

问题描述

我有个问题。

我制作了一个按钮来选择 3 个单元格。现在我使用了一个代码,这样我就可以在活动单元格上计数-1,对选定的单元格计数 +1。它工作正常,但是我想将 +1 添加到选定的单元格之一,另一个我想保持原样。

这是我到目前为止所做的代码

Sub AddNumber()

Dim ws As Worksheet
Dim rngSel As Range
Dim rng As Range
Dim Arr() As Variant
Set rngSel = ActiveCell
Set rngSel2 = Selection
Dim index As Integer
index = 0

For Each rng In rngSel2.Areas
    If index = 0 Then
    rng = rng - 2
 Else
    rng = rng - 0
End If

index = index - 2
    If RangerngSel = rng Then
    rng = rng + 0
End If

rng = rng - 0
    If rng.Count = 1 Then
    rng = rng + 1
Else
  Arr = rng
  rng.Value = Arr
End If
Next rng

End Sub

有没有办法取消选择我不想更改值的单元格?

非常感谢您的帮助!

标签: vba

解决方案


我认为解决此问题的最佳方法是利用选定单元格和活动单元格之间的差异(在选择范围内,其他蓝色单元格中的单个白色单元格是活动单元格)。选择范围时,最顶部、最左侧的单元格是活动单元格。(除非您手动选择范围,在这种情况下,单击的第一个单元格是活动单元格。)而且由于您只想影响 3 个单元格,我相信避免 for 循环和 if 语句会更简单,否则会是涉及。

Sub AddNumber()

    'Select a range of 3 cells
    Range("C3:C5").Select

    'Subtract 1 from the top cell's value
    ActiveCell.Value = ActiveCell.Value - 1

    'Activate the cell below the first and add 1 to its value
    Cells(ActiveCell.Row + 1, ActiveCell.Column).Activate
    ActiveCell.Value = ActiveCell.Value + 1

    'Activate the third cell and add 2 to its value
    Cells(ActiveCell.Row + 1, ActiveCell.Column).Activate
    ActiveCell.Value = ActiveCell.Value + 2

End Sub

由于您想单独保留其中一个单元格的值,因此可以省略其中一个代码块,只需Cells(ActiveCell.Row + 1 [...]相应地调整该部分即可。


推荐阅读