【发布时间】:2016-12-23 21:31:07
【问题描述】:
Excel-VBA。我想创建一个变量,稍后我将在其他几个潜艇中使用它。在关于此的其他问题之后,我公开声明了变量
Public Counter As Integer
然后,我继续使用 sub 为变量赋值
Sub Count()
Set sh2= ActiveWorkbook.Sheets("Sheet2")
Set sh1 = ActiveWorkbook.Sheets("Sheet1")
Dim rng As Range
Dim trng As Range
Set trng = sh2.Range("A4:HV4")
For Each rng In trng
If rng.Value = "Name" Then
Counter = Range(rng, rng.End(xlToLeft)).Columns.count
End If
Next rng
如果我尝试在同一个 sub 上测试哪个值 count 具有例如
sh1.range("B1").value = counter
我得到了正确的号码。
但是,一旦我尝试在另一个 sub 上调用它,值就是 0!
Sub Test()
Range("F1").Value = counter
end sub
我也尝试在我的测试子上调用 Count 子,但也没有结果。
有什么想法吗?谢谢!
【问题讨论】:
-
我总是使用“矫枉过正”的方法,我只是添加了一个专用模块(我称之为 Global_Var)并在那里声明了我所有的全局变量。在您的示例中
Global Counter As Integer. -
您在此处包含的代码部分没有明显的错误,因此问题出在您正在执行的其他部分。但是我注意到 Counter 在一个地方大写,而不是在其他地方:要么你复制不正确,要么代码显示解析器认为它们是不同的变量。
标签: vba excel variables public