gcv*_*gcv 16 tags validation excel
对我低级别的Excel理解表示歉意,也许我想做的事情是不可能的.
我有一个120个条目的列表,我想用它作为数据验证.但是,如果他们可以开始输入并查看可以与他们愿意写的内容相匹配的选项,那么人们不必向下滚动120个选项.有点像自动完成,我找到了这个提示.
我想在打字开始时有更多选择.
例如,这将是列表的一部分:
Awareness
Education
Budget
Budget Planning
Enterprise Budget
Run Code Online (Sandbox Code Playgroud)
键入"B"时,我希望显示最后三个选项并单击其中一个.我不知道在这里是否有包含vlookup的方法...
理想情况下,完美的事情是在一个单元格中有几个"标签",但我担心excel绝对不可能.
非常感谢您的任何意见,如果我没有正确解释,请对不起.
小智 5
如果您不想沿着 VBA 路径走下去,可以使用上一个问题中的这个技巧。
它确实在您的工作表顶部添加了一些令人讨厌的体积和潜在的维护(如果您需要更多选项,从员工列表中添加人员姓名,新项目等),但工作原理都是一样的。
http://www.ozgrid.com/Excel/autocomplete-validation.htm有一个混乱的解决方法,基本上工作原理如下:
Tools - Options > Edit;ExtendOffice.com 提供了一个在 Excel 2016 中对我有用的 VBA 解决方案。这是我对这些步骤的描述。我添加了其他详细信息以使其更容易。我还稍微修改了 VBA 代码。如果这对您不起作用,请重试这些步骤或查看 ExtendOffice 页面上的说明。
向单元格(或单元格范围)添加数据验证。允许 = 列表。来源 = [您想要用于自动完成/下拉的值的范围]。单击确定。您现在应该有一个下拉菜单,但自动完成功能较弱。
使用包含新添加的数据验证的单元格,插入 ActiveX 组合框(不是表单控件组合框)。这是从开发人员功能区完成的。如果您没有开发人员功能区,则需要从 Excel 选项菜单中添加它。
从“控件”部分的“开发人员”选项卡中,单击“设计模式”。选择您刚刚插入的组合框。然后在同一功能区部分单击“属性”。在“属性”窗口中,将组合框的名称更改为“TempComboBox”。
按 ALT + F11 转到 Visual Basic 编辑器。在左侧,双击带有数据验证的工作表以打开该工作表的代码。将以下代码复制并粘贴到工作表上。注意:我稍微修改了代码,以便即使Option Explicit在工作表顶部启用它也能工作。
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal target As Range)
'Update by Extendoffice: 2018/9/21
' Update by Chris Brackett 2018-11-30
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
On Error Resume Next
Dim xCombox As OLEObject
Set xCombox = xWs.OLEObjects("TempCombo")
' Added this to auto select all text when activating the combox box.
xCombox.SetFocus
With xCombox
.ListFillRange = vbNullString
.LinkedCell = vbNullString
.Visible = False
End With
Dim xStr As String
Dim xArr
If target.Validation.Type = xlValidateList Then
' The target cell contains Data Validation.
target.Validation.InCellDropdown = False
' Cancel the "SelectionChange" event.
Dim Cancel As Boolean
Cancel = True
xStr = target.Validation.Formula1
xStr = Right(xStr, Len(xStr) - 1)
If xStr = vbNullString Then Exit Sub
With xCombox
.Visible = True
.Left = target.Left
.Top = target.Top
.Width = target.Width + 5
.Height = target.Height + 5
.ListFillRange = xStr
If .ListFillRange = vbNullString Then
xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = target.Address
End With
xCombox.Activate
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown( _
ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
Select Case KeyCode
Case 9 ' Tab key
Application.ActiveCell.Offset(0, 1).Activate
Case 13 ' Pause key
Application.ActiveCell.Offset(1, 0).Activate
End Select
End Sub
Run Code Online (Sandbox Code Playgroud)确保引用了“Microsoft Forms 2.0 Object Library”。在 Visual Basic 编辑器中,转到“工具”>“引用”,选中该库旁边的框(如果尚未选中),然后单击“确定”。要验证它是否有效,请转到“调试”>“编译 VBA 项目”。
最后,保存您的项目并单击带有您添加的数据验证的单元格。您应该会看到一个带有建议下拉列表的组合框,该列表会随着您键入的每个字母而更新。
| 归档时间: |
|
| 查看次数: |
144522 次 |
| 最近记录: |