单击Combobox控件的事件

时间:2012-01-27 14:07:38

标签: excel excel-vba vba

我有3000张发票的硬拷贝,其中提供了产品的详细信息和经销商的名称。 SAP的销售数据已导出为ex​​cel进行分析。但不幸的是,在每个发票的导出数据中找不到经销商的名称。因此,我决定将经销商的名字与每张发票合并。 为此,我在包含销售数据的工作表中嵌入了一个Combobox控件,我已经加载了所有经销商的名称。

在单元格中的Combo控件左侧说单元格(1,1)我输入发票编号,然后从Combo控件的发票硬拷贝中选择相应的经销商,以便点击名称经销商名称将根据下一栏中的发票编号打印。为此,我在Combobox1_ Click事件中编写了以下宏。

Sub Combobox1_Click()
For i = 5 to 3000
If cells(1,1).value = Cells(i,4).value then
Cells(i,5).value = Combobox1.Text
End if
Next

只要我为每个点击事件选择不同的经销商,这都可以。但是,当我连续两次选择同一个经销商时,不会触发点击事件,并且在第二个实例中不会打印经销商的名称。

为了明确说明,对于发票1233,我选择了经销商X,并且名称X打印在发票1233上。下一张发票1244也属于经销商X,在进入1244单元格(1,1)后如果我选择相同的delaer X,名称X不会打印在发票1244上。

请告诉我解决问题

1 个答案:

答案 0 :(得分:2)

由于控件未检测到更改,因此未触发click事件。您可以通过在click事件结束时添加此代码来更改其显示值来重置控件:

ComboBox1.Text = "Select Dealer"

或者只有当您离开控件时才更改组合框显示文本,方法是添加以下事件:

Private Sub ComboBox1_LostFocus()
  ComboBox1.Text = "Select Dealer"
End Sub