Я использую следующий код VBA, чтобы разрешить автозаполнение при вводе раскрывающегося списка с помощью поля со списком.
Этот код отключает функции «Отменить» и «Повторить» на листах, к которым применяется код VBA. Можно ли изменить код VBA, чтобы разрешить эти функции?
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Обновить Extendoffice: 2018 / 9 / 21
Dim xCombox как OLEObject
Dim xStr как строка
Dim xWs как рабочий лист
Тусклый xArr
Установите xWs = Application.ActiveSheet
On Error Resume Next
Установите xCombox = xWs.OLEObjects("TempCombo")
С xCombox
.ListFillRange = ""
.LinkedCell = ""
.Видимый = Ложь
Конец с
Если Target.Validation.Type = 3 Тогда
Target.Validation.InCellDropdown = Ложь
Отмена = True
xStr = Цель.Валидация.Формула1
xStr = Вправо(xStr, Len(xStr) - 1)
Если xStr = "", то выйдите из Sub
С xCombox
.Visible = True
.Слева = Цель.Слева
.Верх = Цель.Верх
.Ширина = Целевая.Ширина + 5
.Высота = Цель.Высота + 5
.ListFillRange = xStr
Если .ListFillRange = "" Тогда
xArr = Разделить (xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = Целевой.Адрес
Конец с
xCombox.Активировать
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown (ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Выберите код ключа дела
Дело 9
Application.ActiveCell.Offset(0, 1).Активировать
Дело 13
Application.ActiveCell.Offset(1, 0).Активировать
End Select
End Sub