【问题标题】:What Opened My Excel Workbook? [closed]什么打开了我的 Excel 工作簿? [关闭]
【发布时间】:2013-02-10 19:32:49
【问题描述】:

我正在编写一大堆 VBScript 来自动处理 Excel 工作簿。

这些工作簿包含在工作簿打开时运行的 VBA 代码。我需要 VBA 在用户打开它和我的脚本打开它时表现出不同的行为。

有人知道如何区分这两种情况吗? (我无法同时编辑 VBS 和 VBA)

【问题讨论】:

  • 您能更具体地说明您的问题吗?代码示例将非常有帮助,尤其是打开/运行工作簿代码的部分。
  • 什么触发了代码?是否可以在用户触发的事件调用周围提供一个包装器,从而将标志传递给方法?
  • 如何打开 Excel 文件?与YourExcelApplicationObject.Open?

标签: excel vbscript automation vba


【解决方案1】:
Sub Test()
'This is VBA but should easily convert to vbscript...
Dim wb As Workbook

    Application.EnableEvents = False
    Set wb = Workbooks.Open("C:\local files\tester.xlsm")
    Application.EnableEvents = True

    Application.Run "'" & wb.Name & "'!ThisWorkBook.IsAutomated"
    Application.Run "'" & wb.Name & "'!ThisWorkBook.Workbook_Open"

End Sub

在“测试者”工作簿(ThisWorkBook 代码模块)中:

Private m_automated As Boolean

Public Sub IsAutomated()
    m_automated = True
End Sub


Public Sub Workbook_Open()

    If m_automated Then
        MsgBox "automated"
    Else
        MsgBox "not automated"
    End If

End Sub

【讨论】:

  • 我不敢相信我没有想到这个......谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多