【发布时间】:2017-12-18 23:20:23
【问题描述】:
我有这个 cell.Offset(0, -2) 单元格,我需要检查它是否存在于我的 VBA 循环中。
我的想法是,如果cell 有一个不存在的.Offset(0, -2)(例如cell = B 列和cell.Offset(0, -2) = A-1 列,cell.Offset(0, -2) 应该是无效的),我希望能够检查 if else 语句中不存在它。
现在,当它不存在时,我会收到 “Runtime Error 1004: Application defined or object defined error”。
我尝试过IsErr(cell.Offset(0, -2))、cell.Offset(0, -2).Value、If cell.Offset(0, -2) Is Nothing Then、cell.Offset(0, -2) = "",但它们似乎都不起作用……谁能指出我正确的方向?我对 VBA 很陌生,似乎不同的变量类型有不同的方法来检查值是否存在。
【问题讨论】:
-
你可以在你的if语句中检查列是否大于2
-
@DarrellH 你的意思是检查列值?
-
是的。
If cell.column > 2 then... -
只要确保 .Column 大于偏移量即可。或者,.Column 和偏移量的总和 > 0,但也需要小于 Columns.Count
-
要么通过直接检查列来使用@DarrellH 的解决方案,要么(如果你想在一个设定的范围内)使用类似
If Not Intersect(cell, [range which is ok]) Is Nothing Then...