Folosesc următorul cod VBA pentru a permite completarea automată când tastesc în lista derulantă folosind o casetă combinată.
Acest cod dezactivează funcțiile „Anulare” și „Refacere” de pe foile la care este aplicat codul VBA. Codul VBA poate fi modificat pentru a permite aceste funcții?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Actualizare până la Extendoffice: 2018 / 9 / 21
Dim xCombox ca OLEObject
Dim xStr As String
Dim xWs ca fișă de lucru
Dim xArr
Set xWs = Application.ActiveSheet
La data de eroare CV următoare
Setați xCombox = xWs.OLEObjects(„TempCombo”)
Cu xCombox
.ListFillRange = ""
.LinkedCell = ""
.Vizibil = Fals
Se termina cu
Dacă Target.Validation.Type = 3 Atunci
Target.Validation.InCellDropdown = Fals
Anulare = Adevărat
xStr = Target.Validation.Formula1
xStr = Dreapta(xStr, Len(xStr) - 1)
Dacă xStr = "" Atunci Ieșiți din sub
Cu xCombox
.Vizibil = Adevărat
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Înălțime = țintă.Înălțime + 5
.ListFillRange = xStr
Dacă .ListFillRange = "" Atunci
xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
Final, dacă
.LinkedCell = Target.Address
Se termina cu
xCombox.Activare
Me.TempCombo.DropDown
Final, dacă
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode ca MSForms.ReturnInteger, ByVal Shift ca întreg)
Selectați Case KeyCode
Cauza 9
Application.ActiveCell.Offset(0, 1).Activate
Cauza 13
Application.ActiveCell.Offset(1, 0).Activate
Selectare sfârșit
End Sub
Acest cod dezactivează funcțiile „Anulare” și „Refacere” de pe foile la care este aplicat codul VBA. Codul VBA poate fi modificat pentru a permite aceste funcții?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Actualizare până la Extendoffice: 2018 / 9 / 21
Dim xCombox ca OLEObject
Dim xStr As String
Dim xWs ca fișă de lucru
Dim xArr
Set xWs = Application.ActiveSheet
La data de eroare CV următoare
Setați xCombox = xWs.OLEObjects(„TempCombo”)
Cu xCombox
.ListFillRange = ""
.LinkedCell = ""
.Vizibil = Fals
Se termina cu
Dacă Target.Validation.Type = 3 Atunci
Target.Validation.InCellDropdown = Fals
Anulare = Adevărat
xStr = Target.Validation.Formula1
xStr = Dreapta(xStr, Len(xStr) - 1)
Dacă xStr = "" Atunci Ieșiți din sub
Cu xCombox
.Vizibil = Adevărat
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Înălțime = țintă.Înălțime + 5
.ListFillRange = xStr
Dacă .ListFillRange = "" Atunci
xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
Final, dacă
.LinkedCell = Target.Address
Se termina cu
xCombox.Activare
Me.TempCombo.DropDown
Final, dacă
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode ca MSForms.ReturnInteger, ByVal Shift ca întreg)
Selectați Case KeyCode
Cauza 9
Application.ActiveCell.Offset(0, 1).Activate
Cauza 13
Application.ActiveCell.Offset(1, 0).Activate
Selectare sfârșit
End Sub