vba - Excel:如何在整个列中只允许一个值
问题描述
我正在开发一个 100 或更多记录的 Excel 模板。我有一个要求,在其中一列中,用户需要输入帐户 ID。现在,所有 100 条记录的帐户 ID 都必须相同。
通过 VBA,我可以在用户添加一行时附加帐户 ID(使用 VBA 在帐户 ID 列中添加具有值的行)
我正在使用数据验证,它与从列中删除重复值相反
=COUNTIF($E$4:$E$106,E4)<>1
但这些是这个公式的问题
当我更改父单元格(即 E4)中的任何值时,我收到错误消息。
当我添加新行时,公式的值从 E4 变为 E5。
我需要一个公式,我应该能够更改 E4 的值,但不能更改 E5。此外,当我添加新行时,它不应该增加。
此外,一个 VBA 代码验证一列是否有一个单一的值(在完整的范围内,如 E4:E104)
解决方案
从 E 列中删除所有数据验证后,将其放入工作表的私有代码表(不是公共模块代码表)。
private sub worksheet_change(byval target as range)
if not intersect(target, range("e:e"), usedrange.offset(3, 0)) is nothing then
on error goto meh
application.enableevents = false
range(cells(4, "e"), cells(rows.count, "e").end(xlup)) = cells(4, "e").value2
end if
meh:
application.enableevents = true
end sub
推荐阅读
- mysql - mysql持有并等待同一个锁
- c++ - 使用OpenGL绘制随机点/星?
- python-3.x - 使用 pydot 保存图像时出现错误消息 AttributeError: module 'os' has no attribute 'errno'
- python - 如何在 Jupyter Notebook 或 Python Shell 中设置标志
- python - 将两个excel文件与熊猫进行比较
- zend-studio - Zend Studio13.6.1 BUG!!Zend Studio 说类不存在,但确实存在
- apache - UnmarshalException:骆驼肥皂解组错误意外元素
- tensorflow - 用于小型 Tensorflow 分布式训练的简单集群管理器?
- javascript - 在选择标签中仅显示一次选项
- javascript - 按钮单击滚动不起作用