有誰知道從多個Excel文檔中導出VBA代碼的方法,以便可以將代碼添加到Subversion存儲庫中?無需手動打開每個文檔並導出代碼。將多個Excel文檔中的VBA代碼導出到版本控制中
回答
你會爲這個在這裏找到一個工具:
http://www.pretentiousname.com/excel_extractvba/index.html
這是一個VBS腳本使Excel自動。您可以根據自己的需要對其進行修改 - 請注意,它並不完美(請閱讀網頁瞭解注意事項)。
option explicit
Const vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Const vbext_ct_MSForm = 3
Const vbext_ct_StdModule = 1
Main
Sub Main
Dim xl
Dim fs
Dim WBook
Dim VBComp
Dim Sfx
Dim ExportFolder
If Wscript.Arguments.Count <> 1 Then
MsgBox "As the only argument, give the FULL path to an XLS file to extract all the VBA from it."
Else
Set xl = CreateObject("Excel.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
xl.Visible = true
Set WBook = xl.Workbooks.Open(Trim(wScript.Arguments(0)))
ExportFolder = WBook.Path & "\" & fs.GetBaseName(WBook.Name)
fs.CreateFolder(ExportFolder)
For Each VBComp In WBook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
On Error Resume Next
Err.Clear
VBComp.Export ExportFolder & "\" & VBComp.Name & Sfx
If Err.Number <> 0 Then
MsgBox "Failed to export " & ExportFolder & "\" & VBComp.Name & Sfx
End If
On Error Goto 0
End If
Next
xl.Quit
End If
End Sub
- 亞當
當我做了很多的Excel VBA開發的我進入導出到文本格式的每個文件(模塊等),我做了一個變化,每次的習慣(從上下文菜單)。我將這些文件保存在XLA二進制文件的源代碼控制中。這對我來說工作得很好,並且不需要任何外部工具。
此外,可以使用某些VBA鱈魚來自動導出VBA組件(代碼,表單)的過程:請參見[Ron de Bruin](https://www.rondebruin.nl/win/s9/win002.htm)在這裏[Chip Pearson](http://www.cpearson.com/excel/vbe.aspx)。我修改了de Bruin代碼,並在名稱中使用了一個標記(「SHARE _....」),以便循環遍歷它只導出我想要的文件。 – tjejojyj 2017-07-17 01:08:40
我在過去幾年中成功地使用了它來導出我的代碼並保存它。我可以確認它在Office 2003,2007中的工作。我認爲它也可以在2000年運行。
SourceTools好,一旦你啓動和運行,但如果你需要從大量的Excel工作簿中的每一個出口,開放和出口這可能是有點乏味。
VbaDiff(免責聲明:我的產品)具有可讀取多個Excel文件並提取VBA代碼的API。有一個here的例子 - 它可以很容易地適用於將代碼導出到文件中,隨時可以檢入。如果您對SharpSvn很好,那麼您可以隨時將代碼添加到存儲庫中!
- 1. Excel VBA代碼,搜索多個文檔的文本
- 2. 訪問VBA代碼的版本控制?
- 3. 到多個文本文件的VBA Excel-導出特定列
- 4. 如何將其他版本控制項目中的代碼(如VSS)導入到TFS版本控制中?
- 5. 使用VBA將文本文件複製到Excel中時出錯
- 6. MongoDB中文檔集的版本控制
- 7. Excel - 將單元格數據導出爲Word文檔的VBA代碼
- 8. vba代碼將多個excel圖表複製到word
- 9. VBA代碼將多個文件複製到單個指定的Excel表
- 10. VBA:將文本文件中的行復制到Word文檔中
- 11. 將多個gridviews導出到Excel中
- 12. Excel - 通過VBA代碼將多張紙導出爲.pdf
- 13. 文檔版本控制
- 14. 版本檢查VBA(excel)代碼(redhat)
- 15. 使SAS將代碼本身導出到EXCEL表中
- 16. 將datagrid導出到Excel文檔
- 17. 從多個文本文件導入Excel中的數據VBA
- 18. 如何將多個頁面的gridview數據導出到excel文檔中?
- 19. 將控制圖像導出到bmp文件的代碼
- 20. 如何將excel中的數據導出爲文本使用VBA
- 21. Excel新版本中的VBA
- 22. Apex代碼版本控制
- 23. VBA將多個CSV文件導入到excel中的多個工作表
- 24. 將文本文件導入主excel文檔(VBA)?
- 25. 將Excel文件中的文本插入Word文檔(Word VBA)
- 26. 使用VBA將固定文本文件導入到excel中
- 27. 文檔版本的Matlab代碼轉換到Python非broadcastable輸出
- 28. VBA宏將SQL錯誤代碼複製到Excel中
- 29. 將文本粘貼到Excel中評VBA
- 30. VBA將Word中的多行文本複製到Excel單元格中
上面的腳本遠非完美。在長時間搜索網絡後,我終於找到了一些實際可行的東西: http://stackoverflow.com/a/25984759/2780179 。 它具有代碼導入,導出,代碼格式和更多。您可以立即使用它,無需編輯任何現有的工作簿。 – CodeKid 2014-10-11 23:23:03