【发布时间】:2015-05-01 09:11:31
【问题描述】:
太奇怪了,我的 VBA 程序中有类似的语句,但这个语句给了我一个问题。我已验证命名范围已准确列出。
Dim strWarning As String
strWarning = Sheet3.Range("Dte_MissingFlag") 'Initiates to "N"
... some decision logic to flip the strWarning Flag to "Y" or "N"...
If Range("Dte_MissingFlag") <> strWarning Then
Range("Dte_MissingFlag") = strWarning
end if
If 子句内部发生错误。
1004: Application-defined or object-defined error
迄今为止完成的调试: 1) 运行时,在即时窗口中测试
?strWarning
>returns "x"
?Range("Dte_MissingFlag")
>returns null/empty
2) 在即时窗口中运行语句 Range("Dte_MissingFlag") = "x" 没有问题。
我已经阅读了一些内容,其中大部分错误是由于对范围或单元格的无效引用。我试过使用 Sheet("name").Range("cell").value,但仍然得到同样的错误。
对这个有什么想法吗? 提前致谢。
【问题讨论】:
-
如果在代码开头为命名单元格设置 Range 变量会怎样?您是否可能在省略部分的工作簿之间切换?
-
也许可以尝试代码但跳过
... some decision logic...位以查看它是否仍然失败。 -
您是否在模块代码页的声明部分(顶部)中使用
Option Explicit?公式 ► 名称管理器是否将 Dte_MissingFlag 报告为工作簿或工作表范围?您最初使用的是 Sheet3 代号,但后来在代码中省略了它。