Excel 使用vba将同一单元格中两个子过程的两个值相加
这是两个子程序,我想把它们的值加在同一个单元格中Excel 使用vba将同一单元格中两个子过程的两个值相加,excel,vba,Excel,Vba,这是两个子程序,我想把它们的值加在同一个单元格中 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 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
子复选框126\u单击()
如果(Count=Null),则
计数=0
如果结束
计数=0
如果ActiveSheet.Shapes(“复选框126”).ControlFormat=xlOn,则Count=Count+2
范围(“C29”)。值=计数
端接头
"第二套,
私有子工作表_更改(ByVal目标作为范围)
如果不相交(目标,范围(“C29”)为零,则
如果Target.Value=“橙色”,则
目标偏移量(0,1)。值=1
ElseIf Target.Value=“深橙色/棕色”然后
目标偏移量(0,1)。值=1
ElseIf Target.Value=“Pink”则
目标偏移量(0,1)。值=2
ElseIf Target.Value=“红色”则
目标偏移量(0,1)。值=2
ElseIf Target.Value“”则
Target.Offset(0,1).Value=0
其他的
如果结束
如果结束
端接头
我希望在同一单元格中合并它们的值。你能帮我做这个吗。非常感谢创建如下功能:
Function CheckBox126() As Integer
If ActiveSheet.Shapes("Check Box 126").ControlFormat = xlOn Then
CheckBox126 = 2
else
CheckBox126 = 0
End If
End Function
在第二个过程结束时,添加:
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + CheckBox126()
该函数将检查checkbox126的状态,返回2或0,第二个过程将在末尾添加该值。因此这很容易混淆。有人选中复选框,然后您检查
计数的值,如果满足条件,则将其设置为0。然后您将其设置为0
如果勾选复选框,则将其设置为2,如果取消勾选,则保持为0
然后您将一个单元格设置为count的值,这将触发工作表\u Change
,这看起来像是您试图设置的,因此它只会在您上面更改的单元格发生更改时触发,所以为什么不将其添加到同一子例程中呢
然后,假设更改的目标是单个单元格,并检查其值以获取颜色值。但是我们知道,如果它是一个单细胞,要达到这一点,单细胞必须是C29,你在上面更改为0或2的细胞,那么我们知道这个值与count的值相同,所以这些条件都不匹配
…除非单元格C29手动更改为颜色,但在这种情况下,您没有两个数字可添加
我建议重新阅读所有代码并重新表述这个问题
要真正回答您的问题,只需将此添加到第二个例程的底部:
Target.Offset(0,1)。Value=Target.Offset(0,1)。Value+Range(“C29”)。Value
不清楚要加在一起的是什么,您能举个例子吗?正如您所看到的,这两个过程给出了两个不同的值:第一个函数似乎只将0或2放入单元格C29,具体取决于复选框的值。这就是它应该做的吗?是的,在第一个复选框中只有0或2。functionwith function checkbox在返回0和返回2时给出语法错误,它们都用红色标记,尽管我已经将它们添加到xlOnSorry中,但语法混乱(最近太多C)。它现在可以工作了,我已经测试过了。运行时错误1004在If ActiveSheet.Shapes(“复选框126”).ControlFormat=xlOn上,然后在我选中该复选框后,系统因该错误而冻结,我从您的公式中复制了该错误。在额外的代码出现之前它能工作吗?