VBA新手,所以我为这里的任何愚蠢道歉。我正在为我们的软件定制脚本,似乎到处都有excel脚本。
工作代码
IF StrComp(XXXX.GetField("Col_1"), RIGHT(xxxx.GetField("Col_2"), 4)) <> 0
Then xxxx.SetField "Col_1" , RIGHT(xxxx.GetField("Col_2"), 4)
End If
正在发生的事情是脚本运行正常,但如果Col_1中有空白值而Col_2中有空值,则表示正在使用****更新Col_1。我想如果Col_2什么都不是,空白或NULL就不能在所有结束脚本中执行任何操作,但是如果有一个值来测试Col_1 = Col_2的最后4个,如果它们不相等则运行更新。希望这是有道理的。这是我的尝试,但坠毁和烧毁。
If RIGHT(xxxx.GetField("Col_2"), 4) Is Nothing
THEN Exit
IF StrComp(XXXX.GetField("Col_1"), RIGHT(xxxx.GetField("Col_2"), 4)) <> 0
Then xxxx.SetField "Col_1" , RIGHT(xxxx.GetField("Col_2"), 4)
End If
答案 0 :(得分:1)
试试这个
rightVal = RIGHT(xxxx.GetField("Col_2"), 4)
If IsNull(rightVal) Or rightVal = "" Then
Exit Sub
End If
If StrComp(XXXX.GetField("Col_1"), rightVal) <> 0 Then
xxxx.SetField "Col_1" , rightVal
End If
没有什么可以引用一个空的Object引用是VB,所以比较没有什么是不对的。此外,您需要指定要退出的内容,在本例中为&#34;退出子&#34;,并将其括在If块中(您的If语句保持全开)。
我还暂时存储RIGHT(xxxx.GetField("Col_2"), 4)
的值,以便每次都重新计算。