vba - VBA 中的全局变量及其值

标签 vba excel

我正在处理一个包含多个子项的 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

s1s2 声明为 Variant 并将 s3 声明为 Worksheet - 它是VBA 中的一个常见误解是您可以通过这种方式声明同一类型的多个变量。

在 VBA 中的一行上执行此操作的正确方法是:

Public s1 As Worksheet, s2 As Worksheet, s3 As Worksheet

我对第二行也这么说,但无论如何你已经将其声明为变体。

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

相关文章:

excel-2007 - 在二维 VBA 中循环遍历 Excel 中的单元格

excel - 在文本框中插入日期 - VBA

excel - 使用 Excel/VBA 解析主机名的 IP 地址

excel - 将自定义文本重新格式化为时间

javascript - 将 JavaScript Math.pow 用于 Excel 公式

excel - Excel-宏更改工作表并填充到结尾-编译错误

excel - 删除特定工作表之后的工作表

date - 在Excel中使用vba向日期添加x天数

excel - VBA 使用另一个数组查找一个数组中的值

excel - Application.EnableEvents= True 。不适用于 Worksheet_Activate !伏巴