我试图创造一个建立脚本我目前的项目,该项目包括一个Excel程序。中包含一个VBProject与文件modGlobal变version_Number.这些需要改变每个建设。的确切步骤:

  1. 开XLA文件。
  2. 切换到VBEditor模式。(Alt F11)
  3. 开VBProject,进入一个密码。
  4. 开modGlobal文件。
  5. 变化的变量的默认值以目前的日期。
  6. 近距离和保存项目。

我在失去对如何实现自动化的过程。最好我可以想出一个excel宏或Auto-这剧本。我还可以写一个定义MSBuild的任务,但这可能让...棘手。没有任何人有任何其他建议吗?

有帮助吗?

解决方案

一个替代的方式处理的版本控制的一个XLA文件是采用一个定义属于文件的性质。你可以访问和操作使用COM如: http://support.microsoft.com/?kbid=224351.

优点是:

  • 你可以检查的版本数目没有开XLA文件

  • 你不需要Excel上你的建立机-只有DsoFile.dll 组件

另一个选择会将储存的版本号(其他可能的配置数据)的工作表上的XLA文件。工作表将看不到用户的XLA.一项技术我已在过去使用的是储存加以XLS文件来源的控制,然后作为建立过程的一部分(例如在后建立的事件)运行以下脚本,将其转换为一个XLA在输出的目录。这个脚本可以很容易地扩大到更新的版本号中的工作表之前的节省。在我的情况下,我这么做是因为我的Excel加在使用的应用程序级和Visual Studio不支持XLA文件。

'
'   ConvertToXla.vbs
'
'   VBScript to convert an Excel spreadsheet (.xls) into an Excel Add-In (.xla)
'
'   The script takes two arguments:
'
'   - the name of the input XLS file.
'
'   - the name of the output XLA file.
'
Option Explicit
Dim nResult
On Error Resume Next
nResult = DoAction
If Err.Number <> 0 Then 
    Wscript.Echo Err.Description
    Wscript.Quit 1
End If
Wscript.Quit nResult

Private Function DoAction()

    Dim sInputFile, sOutputFile

    Dim argNum, argCount: argCount = Wscript.Arguments.Count

    If argCount < 2 Then
        Err.Raise 1, "ConvertToXla.vbs", "Missing argument"
    End If

    sInputFile = WScript.Arguments(0)
    sOutputFile = WScript.Arguments(1)

    Dim xlApplication

    Set xlApplication = WScript.CreateObject("Excel.Application")
    On Error Resume Next 
    ConvertFileToXla xlApplication, sInputFile, sOutputFile
    If Err.Number <> 0 Then 
        Dim nErrNumber
        Dim sErrSource
        Dim sErrDescription
        nErrNumber = Err.Number
        sErrSource = Err.Source
        sErrDescription = Err.Description
        xlApplication.Quit
        Err.Raise nErrNumber, sErrSource, sErrDescription
    Else
        xlApplication.Quit
    End If

End Function

Public Sub ConvertFileToXla(xlApplication, sInputFile, sOutputFile)

    Dim xlAddIn
    xlAddIn = 18 ' XlFileFormat.xlAddIn

    Dim w
    Set w = xlApplication.Workbooks.Open(sInputFile,,,,,,,,,True)
    w.IsAddIn = True
    w.SaveAs sOutputFile, xlAddIn
    w.Close False
End Sub

其他提示

我不是100%确定如何做到底,你有什么要求。但是猜你的目标在心有几种可能性。

1) 让的一部分(或所有)的Globals一个单独的文本的文件分发。XLA我会用这个外部参考文献,如版本的你的余的应用程序。写这个在建造的时间和分发,并阅读载的XLA.

2) 我猜你写的版本主要成分(即:不XLA部分)应用程序。如果这是真的为什么储存这在你的XLA?为什么没有主要的应用程序的一部分,允许某些版本的XLA工作。1.1版的主要应用程序可以接受的呼吁版7.1-8.9的XLA.

3) 如果你只是寻找更新XLA所以它得到包括在您的版本控制系统或类似(我猜这里)也许只是触摸的文件,因此它看起来像它改变。

如果它版本的应用程序的其余部分,你控制我只是把它放在一个文本文件和分发,随着XLA.

你可以修改码在xla编程方式从内Excel。你会需要一个参考'Visual Basic应用程序的扩展..'组成部分。

例上 芯片皮尔逊的优良网站 应该让你开始。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top