我有一些excel vba代码,它们按对象名称引用工作表:
price = wks_PRICE.Range("A1")
我的问题是我们现在将所有工作表名称都更改为camelcaps,因此工作表对象现在称为“ wks_Price”。
但是excel仍然会自动将代码中的所有内容都大写回原始的大写,然后无法运行。
即。我将输入代码:
price = wks_Price.Range("A1")
,然后vba会自动将其更改回
price = wks_PRICE.Range("A1")
即使不再定义“ wks_PRICE”。
然后它将崩溃,并显示“编译错误:未定义变量”
有关如何解决的任何想法? (除了将所有工作表对象的名称改回来)
答案 0 :(得分:2)
使用所需的名称声明变量工作表wks_Price,VBE会自动更正所有出现的变量以明确声明它的方式。如果确实已将其更改为CAPS,则意味着您已在某个位置声明了此变量(搜索模块/项目)。
答案 1 :(得分:2)
在代码中搜索类似的内容:
设置wks_Price = Activeworkbook.sheets(“价格”)
如果找不到类似的内容,则将其添加=)
答案 2 :(得分:1)
我发现的答案:
在对象属性窗口中将对象名称更改为其他名称。例如。
wks_Price => wks_Price1
稍等片刻。然后改回来。
wks_Price1 => wks_Price
我认为,如果仅更改大小写,那么excel不会意识到对象已更改名称,而是继续将代码更正为旧名称。然后由于它不再定义该对象名称而在运行时崩溃。