Dzwebs.Net

撰写电脑技术杂文十余年

excel vba报错:发现二义性名称

Admin | 2013-5-30 7:21:44 | 被阅次数 | 26827

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  在Excel里面编写VBA代码,可能会由于疏忽而导致部分错误。

  其中,有一种错误叫“二义性名称”;所谓的二义性名称的错误提示,其实指的就是事件名称存在错误。

  因为,在VBA里面在同一个地方,不论是过程、宏名、控件的各种事件名称,都必须是唯一的,不能存在重复,如果存在重复,那自然就有错误了,此类称为二义性名称的错误。

  下面,就和大家举个简单的例子,如下图的两段代码:

  Sub myVBA()
  Range("B4:D9").Select
  With Selection.Interior
        .ColorIndex = 0
        .Pattern = xlGray8
        .PatternColorIndex = xlAutomatic
  End With
  Selection.NumberFormatLocal = "0.0%"
  With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
  End With
  End Sub

  Sub myVBA()
       With Selection.Font
        .Name = "黑体"
        .FontStyle = "加粗"
        .Size = 12
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 41
     End With
     Range("D6").Select
  End Sub

  如果上述这两段代码在相同的一个EXCEL工作薄的VBA里面,肯定就会报错:发现二义性名称:myVBA

  VBA代码内容各不相同,为什么会报错呢?原因就是,这两段代码的过程名称都完全相同,即myVBA。因此,遇到这种情况,你只需要把其中一个myVBA的名称改为其它的即可。或者干脆直接完全删除其中的myVBA一个过程。

  此外,类似的错误还存在于控件或工作表的不同的事件名称中,常见的有:Workbook_Open、Workbook_SheetActivate、Workbook_SheetSelectionChange、Worksheet_SelectionChange、Worksheet_Change等等。如果你遇到此类问题,仅需要完整删除其中的一段代码或改名称即可。


该杂文来自: Excel杂文

上一篇:excel视图比例怎么修改

下一篇:excel随机点名、挑选人员

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计