
EXCEL的VBA公式,求修改下
PrivateSubCheckBox1_Click()'回收EndSubPrivateSubCommandButton1_Click()'立即结算EndSubPrivat...
Private Sub CheckBox1_Click() '回收
End Sub
Private Sub CommandButton1_Click() '立即结算
End Sub
Private Sub TextBox1_Change() '克重
End Sub
Private Sub TextBox2_Change() '金价
End Sub
PS:业务需要,有时需要输入回收的克重跟金价,上面如果不需要输入,则点“立即结算”,则运行之后的公式,如果需要输入,则要“回收”打钩,然后写入“克重”跟”金价”,再点“立即结算”,则“克重”输入到Target.offset(0,19),“金价”输入到Target.offset(0,20)下面是主代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 16 Or Target.Count > 1 Then Exit Sub
If Target.Offset(0, 6) <= 1 And Target.Offset(0, -2) <> "" Then
UserForm2.Show
Target.Offset(0, -5) = Target.Offset(0, -2) * (Target.Offset(0, -11) + Target.Offset(0, -7))
Target.Offset(0, 5) = Target.Offset(0, -1) + Target.Offset(0, 4) * Target.Offset(0, 3) - Target.Offset(0, -5)
End Sub 展开
End Sub
Private Sub CommandButton1_Click() '立即结算
End Sub
Private Sub TextBox1_Change() '克重
End Sub
Private Sub TextBox2_Change() '金价
End Sub
PS:业务需要,有时需要输入回收的克重跟金价,上面如果不需要输入,则点“立即结算”,则运行之后的公式,如果需要输入,则要“回收”打钩,然后写入“克重”跟”金价”,再点“立即结算”,则“克重”输入到Target.offset(0,19),“金价”输入到Target.offset(0,20)下面是主代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 16 Or Target.Count > 1 Then Exit Sub
If Target.Offset(0, 6) <= 1 And Target.Offset(0, -2) <> "" Then
UserForm2.Show
Target.Offset(0, -5) = Target.Offset(0, -2) * (Target.Offset(0, -11) + Target.Offset(0, -7))
Target.Offset(0, 5) = Target.Offset(0, -1) + Target.Offset(0, 4) * Target.Offset(0, 3) - Target.Offset(0, -5)
End Sub 展开
2个回答
展开全部
既然你写了窗口事件,那么建议把之后的代码写到CommandButton1_Click事件里面去,这样比较规整一点,在点击关闭后也就不会进行计算
还有你的第二个if怎么没有end if结束?
还有你的第二个if怎么没有end if结束?
更多追问追答
追问
这个已经是搞定的了,这里你回答个问题分数你的,就是窗体,不是有个关闭嘛,然后要写如果按关闭,则在工作簿的代码中,“窗体.show”之后的代码,全部停止或取消,这里是工作簿的代码使用到“窗体.show”哟,能理解我的意思吧
追答
建议把之后的代码写到CommandButton1_Click事件里面去,如果用户按了关闭窗口,则不会运行按钮事件里面的代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询