簡體   English   中英

以編程方式從源代碼構建XLA

[英]Building an XLA from Source Programmatically

我有一個VBA插件的導出組件的文件夾(受版本控制)(即很多clsfrmfrxbastxt文件)。 有人可以給我一個生成腳本(可以是VB腳本,或者更復雜的東西),該腳本使用此文件夾的名稱並生成(有效的)XLA嗎?

我知道您可以以編程方式修改XLA文件( 例如,這個問題 ),因此編寫一個創建空XLA,然后循環遍歷文件夾中的所有文件以將其添加到其中的腳本應該不會太難。

謝謝,

缺口

(編輯:Excel 2003,如果有任何不同)

我在Excel工作簿中使用了一個非常簡單的VBA宏來做基本上相同的事情,只是我沒有任何形式,並且在格式化的文本文件中有一些單元測試信息。 由於VBA與VBScript非常相似,並且下面的代碼使用了應可用於VBScript的文件系統和Excel對象模型,因此對您很有用。

這是來自.bas模塊的摘錄。 我將其放在空白工作簿中,然后將文本文件放在該工作簿所在的任何目錄中,然后運行導入。 將它重新定位為更正式的東西應該很容易,無論是針對不同的,新創建的工作簿的加載項,還是在Excel之外完成整個構建的腳本:

'...

Private fs_ As FileSystemObject

'...

Private Sub import_()
    On Error GoTo EH

    Set fs_ = New FileSystemObject

    Call importTests_(Application.ThisWorkbook, Application.ThisWorkbook.path)
    Call importCode_(Application.ThisWorkbook, Application.ThisWorkbook.path)

    Exit Sub

EH:
    Debug.Print "Error in import_: " & Err.Number
End Sub

'...
'stuff about importing tests ignored...
'...

Private Sub importCode_(wbk As Workbook, folderName As String)
    Dim folderObj As Folder
    Set folderObj = fs_.GetFolder(folderName)

    Dim fileExt As String

    Dim fileObj As File
    For Each fileObj In folderObj.Files
        fileExt = fs_.GetExtensionName(fileObj.name)

        If fileExt = "bas" Or fileExt = "cls" Then
            Call wbk.VBProject.VBComponents.Import(fileObj.path)
        End If
    Next fileObj
End Sub

'...

我不知道導入表單存在什么問題,因為我從未在Excel中使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM