【问题标题】:transferring variable form one workbook to another workbook vba将变量从一个工作簿转移到另一个工作簿 vba
【发布时间】:2018-03-17 20:41:40
【问题描述】:

我在 workbookA 和 userform 中创建一个用户表单 (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,module1中的变量TTAAtolerance

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    最简单的方法(我知道可行)是将变量临时“保存”在任一文件中的工作表上,然后将其引用为

    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
    

    另一种方法可能是将 WorkbookB 中的 subs 声明为函数。除了public 变量之外,这是从独立 VBA 代码段获取返回值(以本机格式)的唯一方法。但是,如果您对 public 变量不满意,我怀疑这会起作用。

    但是为什么不将模块导入 WorkbookA 呢?以下 SO 答案可能对您有所帮助。 Writing a macro that writes a macro to another Excel-file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-16
      • 2014-12-09
      • 1970-01-01
      • 2023-02-02
      • 2017-09-08
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多