The*_*ice 2 variables excel vba range
我很困惑为什么我的模块中的全局变量在子过程结束时超出范围。
我在所有 subproc 之外的模块顶部声明范围,如下所示
Option Explicit
Dim TIMEDATA As Range
Dim FREQDATA As Range
Const StartLoc = "B4"
Const flowLoc = "F4"
Const dtLoc = "J8"
Run Code Online (Sandbox Code Playgroud)
在我的 subproc 中,我定义了一个范围。
Public Sub PortandConvertData()
<SNIP>
Set TIMEDATA = calcSheet.Range(Cells(2, 2).Address, Cells(2 + dataSize, 2).Address)
End Sub
Run Code Online (Sandbox Code Playgroud)
在监视窗口中子完成后,我看到变量 TIMEDATA 从 Range/Range 变为 Range,并且值从正确变为完全脱离上下文。
我想将数据存储在模块中而不是粘贴在工作表或其他东西中。
任何帮助深表感谢
确保 Watch 属性中的 Context 包括您实际正在观察的过程/模块。您可以通过将上下文设置为所有模块来确保:
在 Watches 面板中:右键单击 Expression --> Edit Watch --> 从 Context 组中将 Procedure/Module 设置为 All。
如果这不是实际问题,那么您遇到的问题与我在 Access VBA 中遇到的问题相同。
该线程解释相同: ThisWorkbook not hold global variable value to cancel ontime()