我的工作簿上有以下代码片段,用于使用ws更改测试交集,然后转到组合框并检索框中输入的任何值。但是,正在发生的事情是,在组合框中输入值后,第一次单元格不会使用它的值进行更新。我必须再次点击它,然后它将填充。我知道我可能会使用另一个事件过程,但我对组合框事件没有任何线索。有人能指出我正确的方向吗?
迈克先生。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aRng As Range
Dim tRng As Range
Set aRng = Range("C19:C36")
Set tRng = Sheet2.Range("I2")
Application.EnableEvents = False 'to prevent re-iteration of event
On Error GoTo cleanup:
If Not Intersect(aRng, Target) Is Nothing Then
Call Sheet2.ComboBox1_Change
Target.Value = Sheet2.ComboBox1.Value
End If
cleanup: 'enable events once again
Application.EnableEvents = True
End Sub
和表格2所在的表格。
Public Sub ComboBox1_Change()
With ComboBox1
.Activate
.SelText = Empty
.DropDown
.MatchRequired = True
End With
End Sub
答案 0 :(得分:0)
为了了解您的问题的基础知识,Combobox具有LinkedCell属性。如果在Sheet1上输入单元格地址,则ComboBox中的选定项目将显示在Sheet1上。 (如果在Sheet1上的Cell中输入了值,它也将显示在ComboBox中。)
使用此代码(在Sheet2的模块中)在ComboBox中进行选择后,可以强制显示Sheet1:
Private Sub ComboBox1_Change()
Sheet1.Select
End Sub
使用Worksheet_Change只会在单元格中输入某些内容后生效(并且已经命中了RETURN)。