关于内存使用的快速问题,因为我想始终以最佳方式编写我的代码。我环顾四周,但没有完全发现我的问题。VBA内存使用:在不同的subs中声明相同的变量vs在公共模块中声明相同的变量
我在工作簿中有几个工作表,我通常在创建新的excel/vba项目时创建这些工作表。这些可能是诸如“图书馆”和“数据”之类的东西。在每个子的开始处,我将声明:
Dim libWS as Worksheet
Dim dataWS as Worksheet
Set libWS = Worksheets("LIBARARY")
Set dataWS = Worksheets("DATA")
我会为每个使用这些工作表的子部分执行此操作。我的问题是,在模块中公开声明这些工作表并使用工作簿打开宏来初始化它们会更加优化还是相同?
模块1:
public libWS as Worksheet
public dataWS as Worksheet
此工作簿:
Private Sub Workbook_Open()
Set libWS = Worksheets("LIBARARY")
Set dataWS = Worksheets("DATA")
End Sub
在速度/存储器使用方面优化的含义。
感谢
我认为问题是更好的服务在代码审查。尝试发布您的完整代码以获得良好回应。 –
我不会那样做,至少有几个原因:(1)全局变量! (2)如果一个未处理的错误最终导致您的VB项目重置,您的全局变量将被擦除,您的代码将被其他代码炸毁。也许相反,创建一个函数返回一个“设置”对象(每个表单都有字段),并在每次需要处理常用项时调用它。或者在VBProject中更改工作表对象的代码名称,然后您可以将它们称为(例如)'libWS',而无需声明它们或将它们设置为任何内容。取决于您的床单的静态。 –
谢谢你的评论。我不知道有一个代码审查部分。我将在未来利用这一点 – Citanaf