Vba 命名范围=标准变量,结果为;1004:应用程序定义或对象定义错误“;

Vba 命名范围=标准变量,结果为;1004:应用程序定义或对象定义错误“;,vba,excel,Vba,Excel,奇怪的是,我的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") <> strWarni

奇怪的是,我的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
迄今为止已完成调试: 1) 运行时,在即时窗口中进行测试

?strWarning
>returns "x"

?Range("Dte_MissingFlag") 
>returns null/empty
2) 在即时窗口中运行语句范围(“Dte_MissingFlag”)=“x”,没有问题

我已经读了一些,其中大多数错误是由于对范围或单元格的无效引用造成的。我尝试使用Sheet(“name”).Range(“cell”).value,但仍然得到相同的错误

对这个有什么想法吗?
提前感谢。

我相信您指定的范围Dte_MissingFlag是一个工作表范围,不在表3中,请检查它

我会使用
这个工作簿.Names(“Dte\u missingsflag”)


当您使用
范围(“SomeName”)
时,它通常指的是Active工作簿。如果名称是工作表范围,则需要使用工作表名称或ThisWorkbook.Names()

如果在代码开头为命名单元格设置范围变量,会怎么样?您是否可能在省略部分的工作簿之间切换?可能尝试代码,但跳过
。。。一些决策逻辑…
位,查看它是否仍然失败。您是否在模块代码页的声明部分(顶部)使用
选项Explicit
?公式► 名称管理器报告Dte_MissingFlag作为工作簿或工作表范围?您最初使用Sheet3代码名,但后来在代码中省略了它。谢谢Patrick。在名称管理器中检查命名范围时,它们都是工作簿范围。然而,当我添加Sheet#.Range(“dte#u missingsflag”)时,它工作得很好。再次感谢!
?strWarning
>returns "x"

?Range("Dte_MissingFlag") 
>returns null/empty