vba - 使用单个列表项创建 LIST 验证

标签 vba excel

我需要一个 Worksheet_Change 事件来根据复杂的矩阵为某些单元格设置数据验证。数据验证应导致单元格下拉列表项!

当您录制宏并插入以分号分隔的列表项时,例如“alfa; beta; gamma; delta”,最终结果会很好,在选定的单元格中,每个项目都位于前一个项目的下方。

您将获得以下代码(由 Excel VBA 完成):

With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="alfa; beta; gamma; delta"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

但是,当您在所选单元格中运行录制的宏时,您将在一行中获得所有项目 alfa; beta; gamma; delta
我该如何解决这个问题?

我需要在下一个下方显示的项目!

最佳答案

VBA 是面向英语的,因此您需要使用 , :

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="alfa, beta, gamma, delta"

关于vba - 使用单个列表项创建 LIST 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49514970/

相关文章:

java - 如何遍历列以在 Excel 中获取行标记数据?

vba - 编译错误: Constant expression required

sql - MS-Access 中的 INTERSECT 多个子查询(没有 INTERSECT 关键字)

vba - 从 Excel 调用的 Access vba 函数会导致返回不同的值

C# UI自动化测试Excel Add In按钮

excel - 使用条件更改按钮中的文本

sql - 为名称/值对数据创建 SQL 查询

performance - 在一个 Excel 文件中包含多个模块是否比在一个模块中包含多个子程序运行速度慢?

Excel用户定义函数: change the cell's color

excel - For Loop 在 excel VBA 中没有完全循环