我正在工作簿A中创建一个用户窗体(userform1),并且在该用户窗体中,我需要在其他工作簿(workbookB)中创建的模块(module1)进行一些计算。为了启动计算,模块需要一些信息(TTAA,公差)。我真的很想知道将一些变量从userform1(workbookA.userform1)转移到module1(workbookB.module1)并将结果重新转移到userform1的最简单方法。
在下面,您可以找到我编写的用于调用该模块的程序的一小部分。
TTAA = CDbl(Me.TTAA_textbox.Value)
tolerance = CDbl(Me.tolerance_textbox.Value)
application.Run ("'Workbooks.xls'!module1")
我已经声明为public,变量TTAA
并且tolerance
在module1中
最简单的方法(我知道可以使用)是将变量临时“保存”在任一文件中的工作表上,然后将其引用为
Worksheets.Add.Name = "tmp"
Workbooks(WorkbookA.Name).Worksheets("tmp").Range("A1").Value2
'And remove it later on
Application.DisplayAlerts = False
Workbooks(WorkbookA.Name).Worksheets("tmp").Delete
Application.DisplayAlerts = True
一种替代方法可能是subs
在WorkbookB中将其声明为函数。除了public
变量之外,这是从独立的VBA代码段中获取返回值(以本机格式)的唯一方法。但是,如果您对public
变量没有运气,我怀疑这会奏效。
但是,为什么不将模块导入到WorkbookA中呢?以下SO答案可能可以帮助您。编写将宏写入另一个Excel文件的宏
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句