Używam następującego kodu VBA, aby umożliwić autouzupełnianie podczas wpisywania listy rozwijanej za pomocą pola kombi.
Ten kod wyłącza funkcje „Cofnij” i „Powtórz” na arkuszach, do których zastosowano kod VBA. Czy kod VBA można zmodyfikować, aby umożliwić te funkcje?
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Aktualizuj do Extendoffice: 2018 / 9 / 21
Przyciemnij xCombox jako obiekt OLE
Dim xStr jako ciąg
Dim xWs jako arkusz roboczy
Przyciemnij xArr
Ustaw xWs = Application.ActiveSheet
On Error Resume Next
Ustaw xCombox = xWs.OLEObjects("TempCombo")
Z xCombox
.ListFillRange = ""
.LinkedCell = ""
.Widoczny = Fałsz
Kończyć z
Jeśli Target.Validation.Type = 3 Wtedy
Target.Validation.InCellDropdown = Fałsz
Cancel = True
xStr = Cel.Walidacja.Formuła1
xStr = Prawo(xStr, Len(xStr) - 1)
Jeśli xStr = "" Następnie wyjdź z Sub
Z xCombox
.Widoczny = Prawda
.W lewo = Cel.W lewo
.Top = Cel.Top
.Szerokość = Cel.Szerokość + 5
.Wysokość = Cel.Wysokość + 5
.ListFillRange = xStr
Jeśli .ListFillRange = "" Wtedy
xArr = Podział(xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = Cel.Adres
Kończyć z
xCombox.Aktywuj
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown (ByVal KeyCode jako MSForms.ReturnInteger, ByVal Shift jako Integer)
Wybierz kod klucza sprawy
Case 9
Application.ActiveCell.Offset(0, 1).Aktywuj
Case 13
Application.ActiveCell.Offset(1, 0).Aktywuj
End Select
End Sub
Ten kod wyłącza funkcje „Cofnij” i „Powtórz” na arkuszach, do których zastosowano kod VBA. Czy kod VBA można zmodyfikować, aby umożliwić te funkcje?
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Aktualizuj do Extendoffice: 2018 / 9 / 21
Przyciemnij xCombox jako obiekt OLE
Dim xStr jako ciąg
Dim xWs jako arkusz roboczy
Przyciemnij xArr
Ustaw xWs = Application.ActiveSheet
On Error Resume Next
Ustaw xCombox = xWs.OLEObjects("TempCombo")
Z xCombox
.ListFillRange = ""
.LinkedCell = ""
.Widoczny = Fałsz
Kończyć z
Jeśli Target.Validation.Type = 3 Wtedy
Target.Validation.InCellDropdown = Fałsz
Cancel = True
xStr = Cel.Walidacja.Formuła1
xStr = Prawo(xStr, Len(xStr) - 1)
Jeśli xStr = "" Następnie wyjdź z Sub
Z xCombox
.Widoczny = Prawda
.W lewo = Cel.W lewo
.Top = Cel.Top
.Szerokość = Cel.Szerokość + 5
.Wysokość = Cel.Wysokość + 5
.ListFillRange = xStr
Jeśli .ListFillRange = "" Wtedy
xArr = Podział(xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = Cel.Adres
Kończyć z
xCombox.Aktywuj
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown (ByVal KeyCode jako MSForms.ReturnInteger, ByVal Shift jako Integer)
Wybierz kod klucza sprawy
Case 9
Application.ActiveCell.Offset(0, 1).Aktywuj
Case 13
Application.ActiveCell.Offset(1, 0).Aktywuj
End Select
End Sub