2013-02-25 154 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

相關問題