症状
当运行 Microsoft Excel 宏或其他编程代码时,将单元格的数据验证规则设置为有效条目的列表时,单元格中的数据验证列表中的所有项目都将显示在一行中。
原因
如果满足以下条件,则会发生此问题:
-
列表分隔符设置(在 "控制面板" 中的 "区域选项" 下)不是逗号(,)。 例如,如果你的区域设置为 "德国",则列表分隔符为分号。
-
用于数据验证的宏使用该列表分隔符指定有效的单元格条目。
-
宏代码显式指定列表,而不是指向列出有效条目的单元格区域。
解决方法
创建宏以指定有效条目的特定列表时,请始终使用逗号(,)作为列表分隔符。
更多信息
在 Excel 中,Microsoft Visual Basic for Applications 始终使用逗号作为列表分隔符。 这允许你在具有不同区域设置的计算机上运行宏,而无需编辑你的代码。 当使用 VBA (XLValidateList Formula1)传递逗号分隔的数组以进行数据有效性时,将应用255字符限制。当运行使用列表分隔符更改设置的宏时,宏会将逗号转换为本地区域列表分隔符。 例如,如果宏创建数据验证列表,或使用区域在单元格中输入公式,则会出现这种情况。公式("数字 1,数字 2") 命令。
参考
有关 Excel 中的数据验证的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
211485 Excel 中数据有效性的说明和示例