![](/img/trans.png)
[英]How to remove xla from xls without renaming or deleting xla file?
[英]Building an XLA from Source Programmatically
我有一個VBA插件的導出組件的文件夾(受版本控制)(即很多cls , frm , frx , bas和txt文件)。 有人可以給我一個生成腳本(可以是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.