由于我是vba脚本的新手,我无法弄清楚在这个简单的赋值语句中我哪里出错了。 我已经在ThisWorkBook中初始化了我的变量,并试图在sheet1中使用它们。
代码:
Public count1 As Integer
Public count2 As Integer
Public count3 As Integer
Public row13 As Integer
Public srow8 As Integer
Public erow8 As Integer
Private Sub Workbook_Open()
count1 = 18
count2 = 26
count3 = 26
Sheet1.setValues
Sheet1.getValues
End Sub
Sub setValues()
row13 = ThisWorkbook.count1
Debug.Print (row13)
srow8 = ThisWorkbook.count2
erow8 = ThisWorkbook.count3
End Sub
Sub getValues()
Debug.Print ("row13")
Debug.Print (row13)
Debug.Print ("srow8")
Debug.Print (srow8)
Debug.Print ("erow8")
Debug.Print (srow8)
End Sub
(所有变量都是全局变量) 当我尝试打印这些值时,没有打印值。 我不明白我哪里出错了? 如果你可以帮助我,那将是很有帮助的。 提前致谢。 :)
答案 0 :(得分:2)
Public
变量可以从代码的任何区域访问,而不仅仅是它们所定义的对象。这并不意味着当你想引用时,你不必指定它们所在的对象。例如,您在ThisWorkbook
对象中包含的内容将被称为ThisWorkbook.count1
等。为了避免使用相关对象限定变量,您可以创建变量Public
在标准代码模块中。
我相信你要做的是如下:
在ThisWorkbook
代码模块中:
Private Sub Workbook_Open()
count1 = 18
count2 = 26
count3 = 26
Sheet1.setValues
Sheet1.getValues
End Sub
在Sheet1
代码模块中:
Sub setValues()
row13 = count1
Debug.Print row13
srow8 = count2
erow8 = count3
End Sub
Sub getValues()
Debug.Print "row13"
Debug.Print row13
Debug.Print "srow8"
Debug.Print srow8
Debug.Print "erow8"
Debug.Print srow8
End Sub
在通用代码模块中(可能是Module1
):
Public count1 As Integer
Public count2 As Integer
Public count3 As Integer
Public row13 As Integer
Public srow8 As Integer
Public erow8 As Integer