2015-09-15 84 views
0

這可能聽起來令人困惑,而且我不完全確定可以按照我想要的方式執行此操作,但是我要做的是創建一個腳本,它將採用.txt文件並在其上運行Excel宏,而不實際打開Excel或文件。我正在閱讀的其中一個博客提出了這種方法,但我對VBS不是很熟悉。使用VBS在excel中打開文本文件並在不打開excel的情況下運行宏

Set objExcel = CreateObject("Excel.Application") 
objExcel.Application.Run "'Path\Test.xlsm'!Module.Macro" 
objExcel.DisplayAlerts = False 
objExcel.Application.Quit 
Set objExcel = Nothing 

當我試圖將它與.txt文件一起使用時,這並不起作用。 我收到的錯誤是Cannot run the macro Path.... The macro may not be available in this workbook or all macros may be disabled

我敢肯定它與我缺乏VBS知識有關,但到目前爲止,它是我找到的最接近的腳本。我正在嘗試做什麼?

+0

只需要清楚,當您創建Excel.Application對象時,您已經打開了Excel。你只是沒有打開工作簿,這就是你的問題所在。 – Jeeped

回答

0

您需要先打開工作簿,然後才能從中運行宏。

... 
Set wb = objExcel.Workbooks.Open("C:\path\to\Test.xlsm") 
objExcel.Application.Run "'Path\Test.xlsm'!Module.Macro" 
... 

如果不打開Excel或包含宏的文件,則無法運行宏。如果你想要這樣的東西,你需要將VBA代碼轉換爲普通的VBScript。

+0

嗯我試着添加你的代碼片段,只是爲了得到這個像你所描述的工作,但我仍然收到相同的錯誤。 – Jcmoney1010

+0

@ Jcmoney1010你可以手動運行宏嗎? –

+0

是的,一旦我在Excel裏面,我可以運行宏就好了 – Jcmoney1010

0

路徑語句需要完整路徑例如" c:\ .... " 我認爲這應該是Module1.Macro_Name(未Module)在記事 寫但.vbs在桌面上保存。只需點擊運行