excel - 数据验证自动完成

标签 excel vba validation autocomplete

我有一个用 VBA 编码的数据验证框(请参见下文。)我已经阅读了大量内容,但当有人在数据验证单元格中键入时找不到自动完成的方法。

大多数人建议使用组合框,但我还没有找到将组合框放置在特定单元格内的方法。我想要它,这样如果有人试图复制组合框所在的行,他们就可以用另一个组合框粘贴另一行。

通过数据验证,这已经成为可能,但它没有自动完成功能。

任何帮助表示赞赏!

Sub DataValidation()

Dim WS As Worksheet
Dim WS2 As Worksheet
Dim Range1 As Range, Range2 As Range

Set WS = ThisWorkbook.Worksheets("Report")
Set WS2 = ThisWorkbook.Worksheets("MachineList")

Set Range1 = WS.Range("A7") 'This is the cell the data validation is placed in.
Set Range2 = WS2.Range("A2:A64") 'This will change if the Machine List gains or loses machines.

    With Range1.Validation
        .Delete
        .Add Type:=xlValidateList, _
            Formula1:="='" & WS2.Name & "'!" & Range2.Address
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = "Machine Name"
        .ErrorTitle = "ERROR: Invalid Machine"
        .InputMessage = "Please enter or select a machine..."
        .ErrorMessage = "You have entered an invalid machine. Please try again."
        .ShowInput = True
        .ShowError = True
    End With

End Sub

最佳答案

虽然没有完美的解决方案,但我发现这是一个易于实现和编辑的解决方案:

http://www.contextures.com/xlDataVal14.html#works (单个单元格单击/选择)
http://www.contextures.com/xlDataVal11.html#works (双击单元格)

基本上,当用户单击数据验证单元格时,此代码直接在其上方放置一个组合框(使用与数据验证相同的公式填充。)这样用户仍然可以拥有自动完成功能,但不必担心如果单元格发生任何变化,组合框就会移动。

关于excel - 数据验证自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891509/

相关文章:

vba - 将 Excel UDF 放入工作表对象中(而不是放在模块中)

excel - onclick 将宏绑定(bind)到 Excel 单元格?

JavaScript 单选按钮 html 网络表单

php - Symfony 的验证组件(独立)

excel - 无法将 VBA 自动过滤器应用于我导出到 CSV 的表

vba - VBA Excel中的索引(匹配())与单元格中的公式

mysql - SQL错误日期与int不兼容

java - Apache POI jar 中的两个 'Sheet' 类

vba - 关闭由其他用户在不同计算机(同一网络)上打开的 Adob​​e Acrobat 文件

javascript - 使用 Javascript 进行 URL 验证效果不佳