Vba Excel工作表名称的大写更改

Vba Excel工作表名称的大写更改,vba,excel,Vba,Excel,我有一些excel vba代码,它按对象名称引用工作表: price = wks_PRICE.Range("A1") 我的问题是,我们现在已将所有工作表名称更改为camelcaps,因此工作表对象现在称为wks_Price 但excel仍然自动将代码中的所有内容资本化回原始资本化状态,然后无法运行 即,我将键入代码: price = wks_Price.Range("A1") 然后vba会自动将其更改回 price = wks_PRICE.Range("A1") 尽管wks_价格不再定义

我有一些excel vba代码,它按对象名称引用工作表:

price = wks_PRICE.Range("A1")
我的问题是,我们现在已将所有工作表名称更改为camelcaps,因此工作表对象现在称为wks_Price

但excel仍然自动将代码中的所有内容资本化回原始资本化状态,然后无法运行

即,我将键入代码:

price = wks_Price.Range("A1")
然后vba会自动将其更改回

price = wks_PRICE.Range("A1")
尽管wks_价格不再定义

然后它将崩溃,出现编译错误:未定义变量


有什么好主意吗?除了重新更改所有工作表对象名称之外

使用您想要的名称声明变量工作表wks\U Price,VBE将自动更正变量的所有发生情况,以解释您如何声明它。如果已将其更改为CAPS,则表示您已在某处声明此变量,请搜索您的模块/项目。

使用您想要的名称声明变量工作表wks\U Price,VBE将自动更正变量的所有发生情况,以明确您声明变量的方式。如果它已经将其更改为CAPS,则意味着您在搜索模块/项目的某处声明了此变量。

在代码中搜索以下内容:

设置wks\u Price=Activeworkbook.sheetsPrice


如果找不到类似的内容,请添加它=

在代码中搜索以下内容:

设置wks\u Price=Activeworkbook.sheetsPrice


如果找不到类似的答案,请添加它=

我发现的答案:

在“对象属性”窗口中将对象名称更改为其他名称。例如

wks_Price => wks_Price1
别管它了。然后把它换回来

wks_Price1 => wks_Price

我认为,如果只更改大写,那么excel不会意识到对象已更改名称,并继续将代码更正回原来的名称。然后它在运行时崩溃,因为该对象名称不再定义。

我发现的答案是:

在“对象属性”窗口中将对象名称更改为其他名称。例如

wks_Price => wks_Price1
别管它了。然后把它换回来

wks_Price1 => wks_Price

我认为,如果只更改大写,那么excel不会意识到对象已更改名称,并继续将代码更正回原来的名称。它运行时会崩溃,因为该对象名称不再定义。

您的问题在别处。wks_PRICE是工作表对象,也可能是包含工作表对象的变体。它不是工作表的名称。它可能在代码开头声明为工作表对象。除了化妆品,没有必要改变它。但是,在更改工作表名称时,您可能没有正确更改此对象的声明方式。工作表的名称为Price。该对象的名称为wks_Price。我知道对象名称和名称之间的区别,我的问题是excel自动将我的对象名称大写。为什么您希望更改工作表名称会对工作表对象名称的大写产生任何影响?正如我所写,您需要了解变量是如何声明的。正如罗恩·罗森菲尔德(Ron Rosenfeld)已经提到的那样:我很确定您的失败不是由资本化造成的。您提到的工作表名称是Price…代码中的任何地方都必须有dim wks_Price作为工作表,必须将其更改为dim wks_Price作为工作表。这应该可以解决你的资本化问题。我知道当使用对象名称调用工作表时,工作表名称无效。vba代码中从未定义工作表对象名称。而是在vba编辑器的“对象属性”窗口中定义。此名称的大写很重要,vba编辑器将自动大写代码中对象名称的任何实例,以匹配它认为对象的名称。我的问题是excel仍然使用旧名称,并且没有意识到它已经更改。您的问题在别处。wks_PRICE是工作表对象,也可能是包含工作表对象的变体。它不是工作表的名称。它可能在代码开头声明为工作表对象。除了化妆品,没有必要改变它。但是,在更改工作表名称时,您可能没有正确更改此对象的声明方式。工作表的名称为Price。该对象的名称为wks_Price。我知道对象名称和名称之间的区别,我的问题是excel自动将我的对象名称大写。为什么您希望更改工作表名称会对工作表对象名称的大写产生任何影响?正如我所写,您需要了解变量是如何声明的。正如罗恩·罗森菲尔德(Ron Rosenfeld)已经提到的那样:我很确定您的失败不是由资本化造成的。您提到了工作表的名称是Price…代码中的任何地方都必须有dim wks\u Price作为工作表
将更改为将工程价格作为工作表进行调整。这应该可以解决你的资本化问题。我知道当使用对象名称调用工作表时,工作表名称无效。vba代码中从未定义工作表对象名称。而是在vba编辑器的“对象属性”窗口中定义。此名称的大写很重要,vba编辑器将自动大写代码中对象名称的任何实例,以匹配它认为对象的名称。我的问题是excel仍然使用旧名称,并且没有意识到它已经更改。这也应该有效。只是准时被打败了。谢谢你的帮助。这也应该有用。只是准时被打败了。谢谢你的帮助。