检测到不明确名称

标识符与另一个标识符发生冲突或需要限制。 此错误的原因及解决方案如下:

  • 同一个范围内的多个对象可以具有同名元素。

    通过包括对象名称和句点来限制元素。 例如:

    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 支持和反馈,获取有关如何接收支持和提供反馈的指南。