5

当我的同事编写一个包含Selection引用的宏时,由于某种原因,它会将单词更改Selection为小写s并停止工作。

例子:

Selection.Copy

更改为

selection.Copy

有人可以告诉我发生了什么吗?我猜是他在某个地方的设置,因为他以前没有写过任何宏。

4

1 回答 1

7

VB 编辑器将根据您的代码用于变量、子例程和其他类型的名称的大小写自动大写,并且它将以与类型范围大致相同的顺序大写。

您可以通过查找任何调用的变量selection并将大小写更改为Selection. 如果找不到,请尝试临时添加一个名为 的变量Selection,所有范围内的大小写都会更改。

例如,如果您定义一个名为 的变量workshEEts,请注意 usingThisWorkbook.Worksheets.Count将使用相同的大小写:

Dim workshEEts As Workbook
Debug.Print ThisWorkbook.workshEEts.Count

但是编辑器中也有一个小故障,因为即使您删除了一个名称,它也会缓存名称。例如,如果您从上面的示例中删除第一行,则第二行的大小写保持不变,并Worksheets在缓存的大小写中添加新的结果用法:

Debug.Print ThisWorkbook.workshEEts.Count
ThisWorkbook.workshEEts(1).Select

那么,如何清除缓存呢?使用您需要的大小写创建一个新变量,即使只是临时的,然后所有范围内的大小写都将更新:

Dim Worksheets
Debug.Print ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(1).Select
于 2016-09-23T12:45:38.453 回答