我正在处理一个包含多个子项的 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
最佳答案
Is it possible that the variables are defined from the beginning without having to write a sub?
不可以,您只能获取/设置子过程或函数中变量的值。
<小时/>附带说明一下,您当前的代码:
Public s1, s2, s3 As Worksheet
Public array1, array2 As Variant
将 s1
和 s2
声明为 Variant
并将 s3
声明为 Worksheet
- 它是VBA 中的一个常见误解是您可以通过这种方式声明同一类型的多个变量。
在 VBA 中的一行上执行此操作的正确方法是:
Public s1 As Worksheet, s2 As Worksheet, s3 As Worksheet
我对第二行也这么说,但无论如何你已经将其声明为变体。
关于vba - VBA 中的全局变量及其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866444/