检测到不明确名称
标识符与另一个标识符发生冲突或需要限制。 此错误的原因及解决方案如下:
同一个范围内的多个对象可以具有同名元素。
通过包括对象名称和句点来限制元素。 例如:
object.property
模块级别标识符和项目级别标识符(模块名称和引用的项目名称)可以在过程中重用,但这会使程序更难进行维护和调试。 但是,如果您需要在同一过程中引用这两个项,则必须限制具有更大范围的项。 例如,如果在
MyID
的模块级别MyModule
声明 ,然后在模块中使用相同的名称声明 过程级变量 ,则必须适当限定对模块级变量的引用:Dim MyID As String Sub MySub MyModule.MyID = "This is module-level variable" Dim MyID As String MyID = "This is the procedure-level variable" Debug.Print MyID Debug.Print MyModule.MyID End Sub
在模块级别上声明的标识符与过程名称发生冲突。 例如,如果在模块级别上声明变量
MyID
,然后用相同的名称定义过程,则会出现此错误:Public MyID Sub MyID '. . . End Sub
在此情况下,您必须更改其中一个名称,因为用一个公共模块名称进行限制将无法消除歧义。 默认情况下,过程名称是 Public ,而变量名称是 Private ,除非将其指定为 Public 。
有关其他信息,选择有问题的项并按 F1(在 Windows 中)或 HELP(在 Macintosh 上)。
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。