我想在Excel文件上運行VBA(清理功能)但是,我只希望某些用戶可以使用它。爲所有Excel運行VBA但不通過項目
示例將發送給用戶一個.bat文件並告訴他們保存並雙擊它。
- 這將打開VBA宏
- 宏會要求用戶選擇「文件」中所有打開的文件來運行宏這將在網絡位置,如果用戶選擇一個有效的被安置
- 宏檢查Excel文件,然後運行
但是,我該怎麼做呢?我已經做了一些研究並閱讀了我需要創建VBS文件。
有人可以請給我一個正確的道路開始?我應該寫.batch來調用VBS來存放代碼嗎?
謝謝!
我想在Excel文件上運行VBA(清理功能)但是,我只希望某些用戶可以使用它。爲所有Excel運行VBA但不通過項目
示例將發送給用戶一個.bat文件並告訴他們保存並雙擊它。
但是,我該怎麼做呢?我已經做了一些研究並閱讀了我需要創建VBS文件。
有人可以請給我一個正確的道路開始?我應該寫.batch來調用VBS來存放代碼嗎?
謝謝!
我寫了一個非常簡短的模塊來完成這種事情 - 主要是將模塊導出/導入爲.bas文件。
您需要啓用「Microsoft Visual Basic的應用程序擴展」引用(我的是5.3 - 我不知道是否有不同的版本),但一旦你這樣做它應該工作
Public Sub CopyModule(Workbook1 As Workbook, ModuleName As String, Workbook2 As Workbook)
''copies a named module between two workbooks VBA projects
''also acts as a backup as it saves a copy of the module as at today's date
'set name of exported module file
wbname = Workbook1.name & "." & ModuleName & "." & Format(Now, "YYYYMMDD")
Dim filename As String: filename = "H:\ASC\Reporting Files\CMT\" & wbname & ".bas"
'define module to be copied from book 1 based on input arguments
Dim CopyModule As VBComponent
Set CopyModule = Workbook1.VBProject.VBComponents(ModuleName)
'export module
CopyModule.Export (filename)
'import module into book 2
Workbook2.VBProject.VBComponents.Import (filename)
End Sub
這裏的想法是在已經打開的兩個工作簿之間複製模塊,並同時將模塊備份。但是,您可以將出口/進口生產線視爲單獨的常規,並在不同的時間運行它們。希望這可以幫助!
我刪除了這個答案並將其刪除 - 我不確定這是否是您尋找的所有解決方案 - 如果不讓我知道,我會重新刪除 – danl
您既可以使用VBScript,也可以將其作爲VBA編寫並向用戶發送包含您編寫的宏的.xlsm文件。 – YowE3K