П’ятниця, 02 серпень 2019
  3 відповіді
  6.8 тис. Відвідувань
0
Голосів
розстібати
Я використовую наступний код VBA, щоб дозволити автозаповнення під час введення тексту в розкривному списку за допомогою поля зі списком.

Цей код вимикає функції «Скасувати» та «Повторити» на аркушах, до яких застосовано код VBA. Чи можна змінити код VBA, щоб дозволити ці функції?

Приватний додатковий аркуш_SelectionChange(ByVal Target As Range)
'Оновлення до Extendoffice: 2018 / 9 / 21
Змінити 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 = False
Скасувати = Правда
xStr = Target.Validation.Formula1
xStr = Право (xStr, Len(xStr) - 1)
Якщо xStr = "" Вийдіть із Sub
З xCombox
.Видимо = Правда
.Ліва = Ціль.Ліва
.Верх = Ціль.Верх
.Width = Target.Width + 5
.Висота = Ціль.Висота + 5
.ListFillRange = xStr
Якщо .ListFillRange = "" Тоді
xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = Цільова.Адреса
Кінець з
xCombox.Активувати
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode як MSForms.ReturnInteger, ByVal Shift як ціле)
Виберіть Case KeyCode
Справа 9
Application.ActiveCell.Offset(0, 1).Activate
Справа 13
Application.ActiveCell.Offset(1, 0).Activate
End Select
End Sub
2 років тому
·
# 1985
0
Голосів
розстібати
Це колись було вирішено? У мене та ж проблема
2 років тому
·
# 1986
0
Голосів
розстібати
Чи була відповідь на це запитання? У мене така ж проблема, і мені дуже потрібна функція скасування. 
2 років тому
·
# 1987
0
Голосів
розстібати
Привіт Nextgen,

Вибачте, що ви не можете скасувати чи повторити дію після застосування будь-яких кодів VBA. Якщо ви хочете скористатися функцією скасування або повторення, скористайтеся функціями Kutools.

Аманда
  • Сторінки:
  • 1
На цю посаду ще немає відповідей.