假設我想在一個外部程序中編寫一個VBA代碼,該代碼打開一個Excel文件,運行一個宏,保存(並且對任何彈出窗口說是)並關閉Excel。是否有可能這樣做?如果是這樣,我將如何去實施它?是否可以通過外部命令在Excel中運行宏?
回答
您可以啓動Excel,打開工作簿,然後從VBScript文件中操作工作簿。
將以下代碼複製到記事本中。
更新'MyWorkbook.xls'和'Sheet1'參數。
用vbs擴展名保存並運行它。
Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\MyWorkbook.xls")
xlBook.Sheets("Sheet1").Cells(1, 1).Value = "My text"
xlBook.Sheets("Sheet1").Cells(1, 1).Font.Bold = TRUE
xlBook.Sheets("Sheet1").Cells(1, 1).Interior.ColorIndex = 6
xlBook.Save
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
上面這個代碼啓動Excel打開工作簿,在單元格A1中輸入一個值,使其變爲粗體並更改單元格的顏色。該工作簿然後保存並關閉。然後關閉Excel。
如何使用上述代碼運行存儲在工作簿中的宏? – Nerdtron 2011-12-16 15:34:37
http://stackoverflow.com/q/10232150/1303610檢查了這一點。 – 2012-05-09 17:27:08
根據您試圖實現的目標,您還可以通過(OLE)Automation從另一個應用程序(例如Access或Word)或從另一個環境(如Visual Basic(6)中編寫的自己的應用程序控制Excel。通過.Net使用您選擇的語言來實現這一點也是可能的(儘管有些比其他語言更容易實現)。
想要從外部應用程序控制Excel還是僅從外部觸發現有工作簿中的VBA宏?
再次,根據您的意圖,工作簿可能會有一個自動打開宏,它可能是基於外部值(例如ini文件或數據庫值)的條件運行。
我可以想到幾種方法來做到這一點。
You can start excel by creating a file with NotePad or a similar text editor.
Here are some steps:
Launch NotePad
Add the following line of text. Replace test.xlsm with the name and path for your file:
start Excel.exe "C\test.xlsm"
Save the file as "Test.bat".
Run the batch file.
The batch file should launch Excel and then open your file. The code in your workbook should run
OR
再次,使用記事本。
Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\MyWorkbook.xls", 0, True)
xlApp.Run "MyMacro"
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
或者,這個。
'Code should be placed in a .vbs file
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:\Users\Ryan\Desktop\Sales.xlsm'!SalesModule.SalesTotal"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
現在,這是不是「外部命令」,但Windows任務調度會做打開該文件爲你的一個不錯的工作,一旦被打開,你可以運行像一個小腳本你看到下面的一個。
Private Sub Workbook_Open()
Call CommandButton1_Click
End Sub
https://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html
- 1. 從外部Excel使用VBScript從命令行運行Excel宏
- 2. 是否可以在IPython中通過調試來運行命令?
- 3. APK是否可以發送命令通過JNI運行dhcpcd?
- 4. 是否可以將外部命令行工具添加到Netbeans?
- 5. 是否可以通過命令行編譯「IDE-Managed Components」項目?
- 6. 是否可以通過命令行修改eclipse工作區?
- 7. 是否可以通過命令行設置powershell opacity
- 8. 是否可以在宏中包含搜索命令?
- 9. 是否可以從刀執行命令中運行chef-client?
- 10. Laravel 5.3 - 是否可以通過點擊鏈接/按鈕運行php artisan命令
- 11. 運行Excel宏外練成
- 12. 可以通過paramiko的exec_command在後臺運行命令嗎?
- 13. 在bash中是否有命令檢查程序是否可以運行
- 14. Notepad ++在宏中使用「運行」命令
- 15. 可以通過ssis處理宏(Excel)嗎?
- 16. 是否可以在每次安裝gem後運行命令?
- 17. 是否可以運行列表中的命令?
- 18. UI自動化儀器是否可以從命令行運行?
- 19. 是否可以從命令行運行PyDev代碼分析?
- 20. 是否可以從命令行運行Google Page速度?
- 21. 是否可以從applet執行命令?
- 22. 在Excel外部運行XLL?
- 23. 在excel中的宏中運行宏
- 24. exec()通過命令行運行,但不通過網絡運行
- 25. 我們可以通過命令行使用mvn build命令
- 26. 通過Java ProccesBuilder運行命令與在Shell中運行命令不同
- 27. 是否可以在命令行中運行Rmarkdown時提供參數?
- 28. 外部命令不能從VBScript運行
- 29. 是否可以使用sl4a運行一些自定義命令?
- 30. 是否可以從java運行導出命令?
你知道什麼類型/多少彈出窗口會出現? – Fionnuala 2010-07-06 08:49:51
嗨,你說「外部程序」是什麼意思?它是Excel嗎? – Trefex 2010-07-06 09:41:02