2016-09-23 29 views
1

у меня есть поле со списком выпадающим с поиском предложениями, сделанные из кода здесь:выпадающего падение вниз, показывая в других листах

http://trumpexcel.com/2013/10/excel-drop-down-list-with-search-suggestions/

Это работает очень хорошо, но когда я на другой лист и нажатием клавиши «Enter», поле поиска случайно всплывает в листе enter image description here

Это даже не полный ящик, только синее поле

Любые идеи по его отключение? Единственный успех, который у меня был, - это перевести расчет на ручной, но для работы требуется автоматический расчет

Спасибо!

ответ

1

У меня возникла аналогичная проблема с моей собственной версией смарт-поиска VBA. Как я установил это, выполнив следующие действия:

Private Sub ComboBox1_Change() 
    If ComboBox1.Value = "" Then Exit Sub '<------ Problem solved. 
    ComboBox1.ListFillRange = "DropDownList" 
    Me.ComboBox1.DropDown 
End Sub 

ИЛИ

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    Dim SheetWithComboBox As Worksheet: Set SheetWithComboBox = ThisWorkbook.Sheets(1) 

    If ThisWorkbook.ActiveSheet.Name <> SheetWithComboBox.Name Then 
     ComboBox1.Visible = False 
    Else: ComboBox1.Visible = True 
    End If 
End Sub 
+0

Если я что-то введенный в поле со списком синее поле всплывает в других листах в случайном порядке, а – Daruki

+0

синее поле всплывает всякий раз, когда я вставить что-то тоже очень странно – Daruki

+0

О хмм .. Maybe..Maybe попробовать это. Я не знаю, поможет ли это для вас ... Я обновлю свой ответ, дайте код выстрелу. – Tyeler

1

@Tyeler

Спасибо за вашу помощь, ваше мышление помогло мне придумать способ

Private Sub ComboBox1_change() 
Dim sht1 As Worksheet 
Set sht1 = Worksheets("xxx") 

If ThisWorkbook.ActiveSheet.Name = sht1.Name Then 

ComboBox1.ListFillRange = "DropDownList" 
Me.ComboBox1.DropDown 
Call macro1 
Else: Exit Sub 
End If 

End Sub 
0

Я нашел решение, которое, по крайней мере для меня, работает для всех листов.

Private Sub Combobox_Get_Focus() 

    ComboBox1.ListFillRange = "DropDownList" 
    Me.ComboBox1.DropDown 

End Sub 
+0

Где ваше решение? – Masoud

Смежные вопросы