如何在VBA(Excel 2010)中将变量恢复为默认大小写?

24

我曾经不小心将一个变量命名为range(全小写),此后,Visual Basic for Applications 编辑器拒绝使用Range(帕斯卡大小写);它会自动更正为小写。如何重置编辑器的“大脑”以忘记我的过去错误?

注意:我尝试过进行全局替换,但只要我编辑任何一行,它就会再次自动更正。

显然,这是一个非常非常微小的外观问题,但每次我输入Range时,看到 R 变成柔软的小写字母都很让人烦恼。


7
除非你开始尝试将VBA代码放入不能忽略大小写(例如mercurial)的版本控制系统中,否则这只是一个非常非常微小的、外观上的问题。在这种情况下,它会变得非常非常令人恼火。 - mwolfe02
2个回答

36
您需要更改声明行中(例如Dim语句)变量的名称,可以在任何地方更改。

这是VBA IDE中最烦人的“功能”之一(好像版本控制已经足够困难了,在VBA中进行常量大小写转换让我发疯)。变量的大小写在VBA IDE中全局更改,而不考虑变量的实际范围。VBA IDE似乎采用最近声明胜出的方法。

通常您只需要在某个声明行中更新大小写即可,但VBA可能会很顽固。我还没有完全破译代码。

注:如下面的评论中@Scorchio指出的那样,变量大小写在当前项目内全局更改;在VBA IDE中打开的其他项目(例如在Excel中工作时的其他工作簿)不受影响。

更新:今天我在我的Access/VBA博客中扩展了此条目:VBA的大小写转换“功能”


9
当然!我只是加了一行“Dim Range as String”,VBA自动把所有的内容都修复了,然后我删掉了那行代码。谢谢 :) - Neil C. Obremski
4
没有这个知识,我是怎么活下来的?! - Simon Cowen
5
这是VBA IDE最令人恼火的“特性”之一。你说得对。我无法忍受这种行为。 - JohnZaj
我以为我要疯了 - 感谢你澄清了这个问题。 - DaveU
2
变量在 VBA IDE 中更改大小写后,其全局范围会受到影响,而不管变量的实际作用域。我认为这并不正确,在 Excel 2010 上进行了测试,似乎是项目全局而不是 IDE 全局。 - Scorchio
显示剩余2条评论

11

谁最后声明,就以其声明为准。

  1. 在第一行输入Dim Range As String
  2. 移动到下一行
  3. 回到上一行并删除Dim Range As String

1
同样地,如果您成功地将变量命名为标准对象的名称,并且现在对象的大小写出现了问题,请使用类似的技巧:Private WithEvents querytable As querytable,然后是 Private WithEvents QueryTable As QueryTable。按回车键,两者都应该大写。 - mcw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接