2013-02-25 278 views
1

我正在写一个VBScript的整个负载来自动处理Excel工作簿。什么打开我的Excel工作簿?

这些工作簿包含在工作簿打开时运行的VBA代码。当用户打开它并且当我的脚本打开它时,我需要VBA展示不同的行为。

有没有人有任何想法如何区分这两种情况? (我不能同时编辑VBS和VBA)

+0

你能否更具体与您的烦恼吗?代码示例将非常有用,特别是打开/运行工作簿代码的部分。 – 2013-02-25 18:07:17

+0

什么触发代码?是否有可能提供用户触发的事件调用的包装,因此将标志传递给方法? – JustinJDavies 2013-02-25 19:40:20

+0

如何打开Excel文件?用'YourExcelApplicationObject.Open'? – 2013-02-25 20:34:46

回答

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 
+0

我不敢相信我没有想到这个......谢谢。 – Griffin 2013-02-27 10:03:44

相关问题