在这里,您可以使用两个子程序,我想在同一个单元格中总结它们的值。
Sub CheckBox126_Click()
If (Count = Null) Then
Count = 0
End If
Count = 0
If ActiveSheet.Shapes("Check Box 126").ControlFormat = xlOn Then Count = Count + 2
Range("C29").Value = Count
End Sub
'second routine
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C29")) Is Nothing Then
If Target.Value = "Orange" Then
Target.Offset(0, 1).Value = 1
ElseIf Target.Value = "Dark orange/brown" Then
Target.Offset(0, 1).Value = 1
ElseIf Target.Value = "Pink" Then
Target.Offset(0, 1).Value = 2
ElseIf Target.Value = "Red" Then
Target.Offset(0, 1).Value = 2
ElseIf Target.Value <> "" Then
Target.Offset(0, 1).Value = 0
Else
End If
End If
End Sub
我想在同一个单元格中组合它们的值。请你帮帮我。非常感谢
答案 0 :(得分:1)
创建一个这样的函数:
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + CheckBox126()
在第二个程序结束时添加:
dt <- data.table(
ID=c(1,1,1,2,2,3,4,4),
art=c("X", "Y", "X", "X", "X", "X", "Z", "X"),
redskb=c("a", "Y", "a", "b", "b", "c", "k", "n")
)
ID art redskb
1: 1 X a
2: 1 Y Y
3: 1 X a
4: 2 X b
5: 2 X b
6: 3 X c
7: 4 X k
8: 4 Z n
该函数将检查checkbox126的状态,返回2或0,第二个过程在末尾添加此值。
答案 1 :(得分:0)
所以这令人困惑。有人检查复选框,然后检查Count
的值,如果满足条件则将其设置为0。然后你将它设置为0.无论如何。
如果勾选了复选框,则设置为2,如果未选中,则保持为0.
然后你将一个单元格设置为count的值,这将触发Worksheet_Change
,它看起来像你试图设置所以它只会在你改变上面改变的单元格时触发,所以为什么不将它添加到同一个子程序?
然后假设更改的目标是单个单元格,并检查其值是否为颜色值。但是,正如我们所知,如果它是单个单元格,要达到这一点,单个单元格必须是C29,您更改为上面的0或2的单元格,那么我们知道该值与值相同伯爵,所以这些条件都不会匹配...
...除非单元格C29手动更改为颜色,但在这种情况下,您没有要添加的2个数字。
我建议您重新阅读所有代码并重新提出这个问题。
要真正回答您的问题,只需将其添加到第二个例程的底部:
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + Range("C29").Value