我正在处理具有多个彼此独立的子的Excel文件。但是它们始终始终使用具有相同值的相同变量。因此,我想在全局范围内定义变量,但是我很容易发现仅在全局范围内声明它们。我该怎么办,也可以从一开始就直接用值填充变量?是否有可能从头开始定义变量而无需编写子程序,如下面的示例所示? (我相信这是不可能的,或者我错了吗?)

多谢您的协助!

汤玛士

Public s1, s2, s3 As Worksheet
Public array1, array2 As Variant

s1 = ThisWorkbook.Worksheets("Sheet 1")
s2 = ThisWorkbook.Worksheets("Sheet 2")
s3 = ThisWorkbook.Worksheets("Sheet 3")
array1 = Array(3, 5, 6, 7, 5)
array2 = Array(8, 9, 10, 11, 12)

Sub code1()
...
End Sub

Sub code2()
...
End Sub

最佳答案

您可以在模块中将它们定义为公共(public)变量,然后在ThisWorkBook模块(其中的工作表在MS Visual Basic编辑器中列出)的Workbook_Open中进行设置:

Public Sub Workbook_Open()
  Set s1 = ThisWorkbook.Worksheets("Sheet 1")
  Set s2 = ThisWorkbook.Worksheets("Sheet 2")
  Set s3 = ThisWorkbook.Worksheets("Sheet 3")
  array1 = Array(3, 5, 6, 7, 5)
  array2 = Array(8, 9, 10, 11, 12)
End Sub

每当首次打开电子表格时,都会执行此方法。

关于vba - VBA中具有值的全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42866444/

10-13 06:57