Piątek, 02 Sierpień 2019
  3 Odpowiedzi
  6.9 tys. Wizyt
0
Głosów
odpiąć
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
2 lat temu
·
#1985
0
Głosów
odpiąć
Czy to kiedykolwiek zostało rozwiązane? Mam ten sam problem
2 lat temu
·
#1986
0
Głosów
odpiąć
Czy odpowiedź na to pytanie została udzielona? Mam ten sam problem i naprawdę potrzebuję funkcji cofania. 
2 lat temu
·
#1987
0
Głosów
odpiąć
Witaj Nextgenie,

Przepraszamy, że nie można cofnąć ani ponowić operacji po zastosowaniu kodów VBA. Jeśli chcesz skorzystać z funkcji cofania lub ponawiania, skorzystaj z funkcji Kutools.

Amanda
  • Strony:
  • 1
Nie ma jeszcze odpowiedzi na ten post.