excel - 在数据通过 VBA 代码移动时触发数据验证
问题描述
我有两张纸:Sheet1
和Sheet2
。表 1 是最终用户输入数据的表格。而 Sheet2 是隐藏的工作表,其中包含使用表单中输入的数据形成的数据表。Sheet 1 有一个 SAVE 按钮,该按钮触发 VBA 代码以将 Sheet 1 表单中的数据保存到 Sheet 2 数据表中。
工作表 2 对数据表的每一列都有多个数据验证规则。当我在表 2 中手动直接在数据表中输入值时,这些数据验证工作正常并被触发(并显示错误消息)。
但是,当我使用此代码将数据从 Sheet1 (Form) 移动到 Sheet2 (Table) 时,不会检查数据验证并粘贴值。当我移至 Sheet2 时,会检查数据验证规则并突出显示不符合验证的单元格。
我想要的是让 excel 在我使用代码将数据从 sheet1 传输到 sheet2 时立即运行这些验证,并显示数据验证失败的错误消息。
如果首先保存的话,我还想将此保存恢复到数据表(即从表中删除该行)。
代码是:
private sub save_data()
dim objList as ListObject
dim form as Worksheet
set objList = ThisWorkbook.Sheets("Sheet 2").ListObjects("Table1")
set form = ThisWorkbook.Sheets("Sheet 1")
dim newRow as ListRow
set newRow = objList.ListRows.Add(AlwaysInsert:=True)
with newRow.Range
.Cells(1,1).Value = form.Range("C2").Value
end with
end sub
我不想使用 vba 创建新的数据验证。我不希望通过 vba 函数创建数据验证规则。我想在 vba 代码运行时运行这些单元格数据验证。有什么办法可以做到这一点?
如果需要,请询问更多详细信息/说明。
解决方案
您是否考虑过使用 Access?它具有您所说的内置功能。您可以创建由用户填写的表单,该表单在后台填充表格。
推荐阅读
- firebase - Firebase 功能不起作用 - 无法模拟应用程序
- database - 将数据库作为 Docker 容器运行还是在裸机服务器上运行?
- java - 在 IDEA 中,如何为新类型生成 javadoc?
- laravel-5.2 - 如何在“With”(ManyToMany Laravel)中制作 where-filter?
- javascript - SignalR 不适用于 asp.net 和 sql server 2014
- java - 在 While 循环中使用时扫描仪输入不起作用
- python - How to silence all sklearn warning
- scala - 如何在 Kafka 2.0 中编写处理器 impl 类
- java - 如何向对话流发送响应
- spring-boot - 在 SpringBoot 上使用 HttpClient / MultipartRequestEntity 检查进度