【发布时间】:2019-05-31 15:47:17
【问题描述】:
我从 module1 调用 module2,我在 module2 中将工作簿命名为“x”。但后来当我在 module1 中尝试“x.Activate”时,我收到一个错误“运行时错误'424':需要对象”
我有一个相当长的模块,我想把它分成多个模块来组织。到目前为止,我已经在这个模块中创建了一个名为“INPUTS”的模块我有一个“Sub RT_CMM_DATA_COMPILER_INPUTS()”大概在未来我将在这个模块中拥有其他 Subs“Sub RT_Some_Other_Project_INPUTS()”我在“Sub RT_CMM_DATA_COMPILER_INPUTS( )”并尝试在名为沙箱的单独模块中按名称激活该工作簿。但它显示一个错误。
'RT_Sandbox Module
Sub sandbox()
Call RT_CMM_DATA_COMPILER_INPUTS
wkbwatchFolders_table.Activate
lastShtRow = LASTSHEETROW(ActiveSheet)
MsgBox lastShtRow
End Sub
'Inputs module
Sub RT_CMM_DATA_COMPILER_INPUTS()
watchFolders_filePath = "D:\RT_CMM_Data_File_Paths.xlsx"
Set wkbwatchFolders_table = Workbooks.Open(Filename:=watchFolders_filePath)
End Sub
我是否会尝试组织我的代码完全错误?我应该为此使用类模块吗?还是只是我缺少一些语法?
【问题讨论】:
-
要使对象在所有过程中可用,您需要公开声明它。你可以在这里阅读更多信息 (docs.microsoft.com/en-us/office/vba/language/concepts/…)