ng5*_*000 6 excel vba excel-vba
据我所知,当我使用VBA代码创建Excel工作表时,VBA代码将与工作表一起保存为二进制文件.因此,我不能以有用的方式将代码放入源代码控制中,让多个开发人员处理问题,难以区分,等等.
有没有办法围绕这个没有切换到VSTO,COM插件等?例如,要在运行时从Web服务,共享驱动器等加载所有VBA的工作表?任何想法都赞赏.
谢谢.
Jon*_*nas 12
我为Excel编写了一种构建系统,它从源文件中导入VBA代码(然后可以将其导入源代码控制,差异等).它的工作原理是创建一个包含导入代码的新Excel文件,因此它可能不适用于您的情况.
构建宏看起来像这样,我将它保存在一个名为Build.xls的文件中:
Sub Build()
Dim path As String
path = "excelfiles"
Dim vbaProject As VBIDE.VBProject
Set vbaProject = ThisWorkbook.VBProject
ChDir "C:\Excel"
' Below are the files that are imported
vbaProject.VBComponents.Import (path & "\something.frm")
vbaProject.VBComponents.Import (path & "\somethingelse.frm")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "Output.xls"
Application.DisplayAlerts = True
Application.Quit
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,VBIDE的东西意味着你必须导入一个名为"Microsoft Visual Basic for Applications Extensibility 5.3"的引用,我想.
当然,你仍然有必须启动Excel来构建的问题.这可以通过一个小的VB脚本修复:
currentPath = CreateObject("Scripting.FileSystemObject") _
.GetAbsolutePathName(".")
filePath = currentPath & "\" & "Build.xls"
Dim objXL
Set objXL = CreateObject("Excel.Application")
With objXL
.Workbooks.Open(filePath)
.Application.Run "Build.Build"
End With
Set objXL = Nothing
Run Code Online (Sandbox Code Playgroud)
运行上面的脚本应该启动生成Excel文件,该文件输出结果表.您可能需要更改一些内容以使其在文件系统中可移动.希望这可以帮助!
归档时间: |
|
查看次数: |
1424 次 |
最近记录: |