我使用以下 VBA 代码在使用组合框输入下拉列表时允许自动完成。
此代码禁用应用 VBA 代码的工作表上的“撤消”和“重做”功能。 可以修改 VBA 代码以允许这些功能吗?
Private Sub Worksheet_SelectionChange(作为范围的ByVal目标)
'更新者 Extendoffice:2018 / 9 / 21
将 xCombox 调暗为 OLEObject
将 xStr 调暗为字符串
将 xWs 调暗为工作表
暗淡 xArr
设置 xWs = Application.ActiveSheet
出错时继续下一步
设置 xCombox = xWs.OLEObjects("TempCombo")
使用 xCombox
.ListFillRange = ""
.LinkedCell = ""
.可见=假
结束
如果 Target.Validation.Type = 3 那么
Target.Validation.InCellDropdown = 假
取消 = 真
xStr = 目标.验证.公式1
xStr = 右 (xStr, Len(xStr) - 1)
如果 xStr = "" 则退出 Sub
使用 xCombox
.可见=真
.Left = 目标.Left
.Top = 目标.Top
.Width = 目标.Width + 5
.Height = 目标.Height + 5
.ListFillRange = xStr
如果 .ListFillRange = "" 那么
xArr = 拆分(xStr,“,”)
Me.TempCombo.List = xArr
结束如果
.LinkedCell = 目标.地址
结束
xCombox.激活
我.TempCombo.DropDown
结束如果
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 SUB
此代码禁用应用 VBA 代码的工作表上的“撤消”和“重做”功能。 可以修改 VBA 代码以允许这些功能吗?
Private Sub Worksheet_SelectionChange(作为范围的ByVal目标)
'更新者 Extendoffice:2018 / 9 / 21
将 xCombox 调暗为 OLEObject
将 xStr 调暗为字符串
将 xWs 调暗为工作表
暗淡 xArr
设置 xWs = Application.ActiveSheet
出错时继续下一步
设置 xCombox = xWs.OLEObjects("TempCombo")
使用 xCombox
.ListFillRange = ""
.LinkedCell = ""
.可见=假
结束
如果 Target.Validation.Type = 3 那么
Target.Validation.InCellDropdown = 假
取消 = 真
xStr = 目标.验证.公式1
xStr = 右 (xStr, Len(xStr) - 1)
如果 xStr = "" 则退出 Sub
使用 xCombox
.可见=真
.Left = 目标.Left
.Top = 目标.Top
.Width = 目标.Width + 5
.Height = 目标.Height + 5
.ListFillRange = xStr
如果 .ListFillRange = "" 那么
xArr = 拆分(xStr,“,”)
Me.TempCombo.List = xArr
结束如果
.LinkedCell = 目标.地址
结束
xCombox.激活
我.TempCombo.DropDown
结束如果
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 SUB