vba - 使用一个按钮,我只想为一个选定的单元格添加值
问题描述
我有个问题。
我制作了一个按钮来选择 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
有没有办法取消选择我不想更改值的单元格?
非常感谢您的帮助!
解决方案
我认为解决此问题的最佳方法是利用选定单元格和活动单元格之间的差异(在选择范围内,其他蓝色单元格中的单个白色单元格是活动单元格)。选择范围时,最顶部、最左侧的单元格是活动单元格。(除非您手动选择范围,在这种情况下,单击的第一个单元格是活动单元格。)而且由于您只想影响 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 [...]
相应地调整该部分即可。
推荐阅读
- python - 有没有办法将硒等待变成一个while语句?
- python - 将函数应用于数据框中的每一行
- c++ - 通过 nerdtree 和 vim 在 .h 和 .hpp 文件中插入标头保护
- arrays - 用于压缩“相同字母模式”的 O(n) 就地算法
- javascript - 如何删除 Webgl 中的特定对象(无库)
- docker - 运行 docker 容器时无法访问页面
- css - 滚动激活时的css高度计算
- flutter - 我们可以根据条件强制设置参数吗?
- certificate - 为什么证书在安装后仍被拒绝?
- reactjs - 反应钩子形式 - 类型错误:无法读取 L 处未定义的属性“拆分”(get.ts:6)