需要一些帮助......
我正在尝试帮助我的妻子自动化她使用的 Excel 电子表格,但我无法解决这个问题......
我想要实现的目标:
当我单击某个单元格范围时,我希望同时某个单元格中的特定数字减少而其他单元格中的特定数字增加。
在示例中:
我插入数字22在单元格 D4 中(这定义了将被选中的最大单元格数)
当我单击该单元格范围内的某个单元格时,该单元格变为绿色,并且单元格 D4 中的数字减少 1,而单元格 F4 中的数字增加 1,依此类推,对于该范围内的每个单元格,最多需要 22 次点击。
如果我再次单击同一个单元格,该单元格将恢复正常(没有绿色覆盖),并且单元格 D4 中的数字会增加 1,而 F4 中的数字会减少 1,反之亦然。
选择了 22 个单元格并将其覆盖为绿色后,如果我继续单击而没有任何反应,为了能够使另一个单元格变为绿色,我需要删除之前选定的单元格之一。
我希望你们理解……
我只有一个通过双击来改变单元格颜色的代码,而电子表格没有使用任何其他代码,只有条件格式和公式。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Select Case Target.Interior.ColorIndex
Case xlNone, 4: Target.Interior.ColorIndex = 4
End Select
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.Interior.ColorIndex = xlNone
End Sub
请查看示例图片:
答案1
我会利用这些数量单元格上的几个简单公式来完成此操作。
首先,Quantity to Insert
有以下内容:= 21 - Quantity_Inserted
。
其次,Quantity Inserted
有以下几点:=COUNTIFS(Range, "x")
x
这将计算您的数量Range
并将其显示在Quantity Inserted
字段中,同时从Quantity to Insert
字段中减去相同的数量。
我对 VBA 的经验并不多(实际上根本没有),但由于您已经有了通过双击来更改单元格颜色的代码,因此插入“x”可能不会花费太多工作。
或者,您可以应用条件格式Range
来检测何时放置了,并将文本和背景都涂成黄色,从而有效地隐藏了正在计算的x
事实。x