VBA根据选项按钮选择更新文本框值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA根据选项按钮选择更新文本框值相关的知识,希望对你有一定的参考价值。
我正在开发一个vba excel用户表单,我遇到了一个名为“Textbox6”的文本框在某些条件到位时不会更新的点 - 就像选择了一个选项按钮。
换一种说法。如果Optionbuttton10为“仅”,则Textbox6将显示单元格D3中的值
如果“OptionButton10”为真并且“Optionbutton2”为True,那么我希望Textbox6显示单元格E3
这是我到目前为止的代码,它“看起来”它应该工作,但我错过了一些东西。
Private Sub OptionButton10_Click()
Dim D3 As Variant
Dim E3 As Variant
D3 = Sheets("Systems").Range("D3").Value
E3 = Sheets("Systems").Range("E3").Value
If OptionButton10 = True And ComboBox2 = "Standard" Or ComboBox2 = "Scale-In" Then
TextBox6.Value = D3 'this works'
ElseIf OptionButton10 = True And OptionButton2 = True Then
TextBox6.Value = E3 'this doesn't work'
End If
TextBox6.Text = Format(TextBox6.Value, "Percent")
End Sub
答案
这很难确定,但根据您的评论,您可能想要尝试这样做:
Private Sub OptionButton10_Click()
Dim D3 As Variant
Dim E3 As Variant
D3 = Sheets("Systems").Range("D3").Value
E3 = Sheets("Systems").Range("E3").Value
If (OptionButton10 And Not (OptionButton2)) And (ComboBox2 = "Standard" Or ComboBox2 = "Scale-In") Then
TextBox6.Value = D3 'this works'
ElseIf OptionButton10 = True And OptionButton2 = True Then
TextBox6.Value = E3 'this doesn't work'
End If
TextBox6.text = Format(TextBox6.Value, "Percent")
End Sub
或者,这个:
Private Sub OptionButton10_Click()
Dim D3 As Variant
Dim E3 As Variant
D3 = Sheets("Systems").Range("D3").Value
E3 = Sheets("Systems").Range("E3").Value
If OptionButton10 And OptionButton2 Then
TextBox6.Value = E3 'this doesn't work'
ElseIf OptionButton10 = True And (ComboBox2 = "Standard" Or ComboBox2 = "Scale-In") Then
TextBox6.Value = D3 'this works'
End If
TextBox6.text = Format(TextBox6.Value, "Percent")
End Sub
此外,我强烈建议您为按钮和框(包括文本框)提供更好的名称。未来,当您查看代码并阅读时,您会非常感激:
If (ProcessFoo and Not(ProcessBar)) and (Baz = "Standard" or Baz = "Scale-In")
*为你的选项和组合框提供适当的名称,如果你将它们命名为Foo
和Bar
以及Baz
,未来你可能会比使用默认名称留下它们更加困惑...
这比你必须回到表单看看OptionButton10
和OptionButton2
的文本标签更快...
另一答案
对我有用的解决方案如下。
我使用嵌套的If语句并添加了“optionbutton2 = false”
Private Sub OptionButton10_Click()
Dim D3 As Variant
Dim E3 As Variant
D3 = Sheets("Systems").Range("D3").Value
E3 = Sheets("Systems").Range("E3").Value
If ComboBox2 = "Standard" Or ComboBox2 = "Scale-In" Then
If OptionButton10 = True And OptionButton2 = False Then
TextBox6.Value = D3
ElseIf OptionButton10 = True And OptionButton2 = True Then
TextBox6.Value = E3
End If
End If
TextBox6.Text = Format(TextBox6.Value, "Percent")
End Sub
以上是关于VBA根据选项按钮选择更新文本框值的主要内容,如果未能解决你的问题,请参考以下文章
根据文本框值javascript修改complete.ly选项
根据单选按钮选择组合(VBA Excel)用可变文本填充文本框