使用VBA验证多个单元格数据
我陷入了困境,谁能帮帮我。 我试图检查每个属性是否有特定的属性id使用VBA验证多个单元格数据,vba,excel,Vba,Excel,我陷入了困境,谁能帮帮我。 我试图检查每个属性是否有特定的属性id | Property | Property_ID | Date | |----------|-------------|------------| | A | ABC | 10/12/2018 | | A | XYZ | 08/11/2018 | | A | LMN | 12/05/2018 | | A | IJK
| Property | Property_ID | Date |
|----------|-------------|------------|
| A | ABC | 10/12/2018 |
| A | XYZ | 08/11/2018 |
| A | LMN | 12/05/2018 |
| A | IJK | 15/05/2018 |
| B | ABC | 13/12/2018 |
| B | XYZ | 14/10/2018 |
| B | IJK | 15/12/2018 |
| C | LMN | 01/12/2018 |
| C | XYZ | 17/05/2018 |
例如:-验证每个属性是否具有属性“ABC、XYZ、LMN、IJK”。同时验证每个日期是否大于2018年10月12日
| Property | Property_ID | Date |
|----------|-------------|------------|
| A | ABC | 10/12/2018 |
| A | XYZ | 08/11/2018 |
| A | LMN | 12/05/2018 |
| A | IJK | 15/05/2018 |
| B | ABC | 13/12/2018 |
| B | XYZ | 14/10/2018 |
| B | IJK | 15/12/2018 |
| C | LMN | 01/12/2018 |
| C | XYZ | 17/05/2018 |
我在代码中看到了几个问题:
| Property | Property_ID | Date |
|----------|-------------|------------|
| A | ABC | 10/12/2018 |
| A | XYZ | 08/11/2018 |
| A | LMN | 12/05/2018 |
| A | IJK | 15/05/2018 |
| B | ABC | 13/12/2018 |
| B | XYZ | 14/10/2018 |
| B | IJK | 15/12/2018 |
| C | LMN | 01/12/2018 |
| C | XYZ | 17/05/2018 |
A.它永远不会改变
B它不会与任何东西进行比较以触发异常。
C当前“日期”应从循环外的第一条记录开始初始化,并且应基于第一个值设置
Date\u验证
,例如:Date\u validation=Date=Trim(sht1.范围(“c2”))
因此,“日期验证”仅在日期有效时设置为真,任何假值都是例外。
D旁注:名为“Date”的变量可能会遇到关键字问题。。。我可以推荐“PropDate”或“PromoDate”吗 E读取的每一新行(i递增)应该测试的不仅仅是“日期”验证
如果当前值=以前的值,则为false(即新属性),您没有检查是否满足所有条件,只检查您的“现在位于新属性上”。相应的Else
应该是ElseIf
,例如:
ElseIf not(ABC、IJK、XYZ和…以及日期验证)’仅当全部为false时
'.... 显示错误消息
'如果ABC(etc)。。。
'触发器需要重置为false
'连同数据验证
i
已经增加,并且位于新记录上。它应该读(某物)i-1
顺便说一句,如果声明为布尔值,ABC etc将初始化为False。您可以对这两个If-Else-If块使用一个Select-Case语句。您的问题是什么?你一个也没问。你的代码有什么问题?你会犯什么错误?在哪里?发生了什么与您预期的情况相比?问题:-是否有更简单的方法来验证每个属性(A2、A3、A4、A5)是否具有如上所述的相应属性id(B2、B3、B4、B5)。预期内容:如果您声明变量的任何PropertyId都不存在any Property_ID,我想写一条注释?哪里(提示:不要使用隐式声明,始终将Option Explicit放在模块顶部)。
Date=“10-12-2018”
:是否确实要更改系统?