为什么我的比较器在第一次循环后不起作用?

时间:2016-06-16 21:13:46

标签: excel vba excel-vba

我的代码中有一个非常简单的If Else语句,如下所示:

If GUI.editedFH = "" Then
    fhNumField.Value = fhNumField.List(0)
Else
    fhNumField.Value = editedFH
End If 

这段代码位于UserForm_Initialize() sub中,在用户使用表单编辑或删除数据行后,我经常调用它。我卸载表单并重新加载它作为一种方式来刷新"表格中的数据。

代码在If语句的第一行失败。 VBE抛出此错误

Run-time error '1004':
Application-defined or object-defined error

GUI.editedFH是一个在单独模块中声明的全局字符串。 GUI是模块的名称,editedFH是字符串变量名称。我在GUI.editedFH上放了一只手表,我将String作为我想要的类型和价值。

当我硬编码字符串值而不是GUI.editedFH时,它仍然无法正常工作,即

If "abc" = "" Then
    '....
End If

最令人困惑的部分是我可以在其他地方比较这样的字符串,并且在错误发生时似乎是随机的。它将首次通过初始化和后续几次工作,但最终会产生错误。

0 个答案:

没有答案