Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何触发ActiveX组合框更改事件?_Vba_Excel_Combobox - Fatal编程技术网

Vba 如何触发ActiveX组合框更改事件?

Vba 如何触发ActiveX组合框更改事件?,vba,excel,combobox,Vba,Excel,Combobox,论坛新手,请原谅我的格式不正确 我试图编写一段简单的代码,将静态值填充到一个范围中,该范围基于在组合框中选择的项目。到目前为止,我已经尝试使用ComboBox\u Change、ComboBox\u Click、ComboBox\u AfterUpdate和ComboBox\u LostFocus,但这些选项都不会在选择一个ComboBox项目时更新我的工作表 下面的代码是我到目前为止所拥有的 Private Sub Workbook_open() Sheet8.ComboBox1.Clea

论坛新手,请原谅我的格式不正确

我试图编写一段简单的代码,将静态值填充到一个范围中,该范围基于在组合框中选择的项目。到目前为止,我已经尝试使用ComboBox\u Change、ComboBox\u Click、ComboBox\u AfterUpdate和ComboBox\u LostFocus,但这些选项都不会在选择一个ComboBox项目时更新我的工作表

下面的代码是我到目前为止所拥有的

Private Sub Workbook_open()
  Sheet8.ComboBox1.Clear
    With Sheet8.ComboBox1
      .AddItem "OK"
      .AddItem "TX"
  End With
End Sub 

Private Sub ComboBox_Change()
  Select Case Sheet8.ComboBox1.Value
    Case "TX"
        Sheet8.Range("H4:H364").Value = 0.046
        Sheet8.Range("I4:I364").Value = 0.075
    Case "OK"
        Sheet8.Range("H4:H52").Value = 0.04
        Sheet8.Range("H53:H364").Value = 0.07
        Sheet8.Range("I4:I364").Value = 0.07
  End Select
End Sub
从功能上讲,在宏窗口中手动单击“运行”后,代码就会工作。但是,我的目标是在选择一个组合框项目后,使所选范围自动更新


任何帮助都将不胜感激

如果是ActiveX组合框,则代码需要位于相关工作表的代码区域,即
Sheet8
代码区域。我怀疑它在
本工作簿中
,并检查您的组合框名称是否真的是
组合框
,而不是
组合框1
或其他内容。
Sub
名称必须是组合框名称,后缀为
\u Change()
@Peh:Lol我错过了。。。我认为它是
ComboBox1
,因为
选择案例表8.ComboBox1.Value
@SiddharthRout我认为我们都是对的(有两个问题),因为代码在过程
Workbook\u open()
下面,让我假设它在工作簿区域。谢谢!代码在“ThisWorkbook”中,而不是在“Sheet8”中。将其移动到“Sheet8”并将子名称更改为“ComboBox1”就成功了。