0
我有一個現有的xls文件,它根據目錄中的文件創建CONTENTS文件。例如,如果一個目錄包含file.pdf和file.txt,它將創建一個文件,其內容爲如何基於目錄中的文件創建包含內容的文件
file.pdf
file.txt
每個文件都用換行符分隔。
我想要做的就是我想要的內容包含
file.pdf bundle:ORIGINAL
file.txt bundle:TEXT
file.pdf
和bundle:ORIGINAL
由tab
字符分隔。該目錄將包含這2個文件類型,1個pdf和1個文本文件。所以基本上,我想要的是,對於每個pdf文件,它應該跟着bundle:ORIGINAL
文本,而如果它是一個文本文件,則應該跟着bundle:TEXT
。
原來的代碼如下:
For i = 2 To lRows
If Trim(Cells(i, 1).Value) = "" Then Exit For
' create the CONTENTS file
FileList = GetFileList(oDirectory & "\" & Trim(Cells(i, lCols).Value) & "\")
cFileNum = FreeFile
ContentsPath = oDirectory & "\" & Trim(Cells(i, lCols).Value) & "\" & "contents"
Open ContentsPath For Output As #cFileNum
For k = 1 To UBound(FileList)
If (FileList(k) <> "contents" And FileList(k) <> "dublin_core.xml") Then
Print #cFileNum, FileList(k)
End If
Next k
Close #cFileNum
編輯
這是功能GetFileList
Function GetFileList(FileSpec As String) As Variant
' Returns an array of filenames that match FileSpec
' If no matching files are found, it returns False
Dim FileArray() As Variant
Dim FileCount As Integer
Dim FileName As String
On Error GoTo NoFilesFound
FileCount = 0
FileName = Dir(FileSpec)
If FileName = "" Then GoTo NoFilesFound
' Loop until no more matching files are found
Do While FileName <> ""
FileCount = FileCount + 1
ReDim Preserve FileArray(1 To FileCount)
FileArray(FileCount) = FileName
FileName = Dir()
Loop
GetFileList = FileArray
Exit Function
' Error handler
NoFilesFound:
GetFileList = False
End Function
請注意,我明明不是這個代碼的作者,我剛剛下載這個excel文件(該網站不再存在)很久以前,我只需要調整這個爲我自己使用。
在此先感謝。
當我運行宏,我收到此錯誤:'編譯錯誤:ByRef參數類型mismatch'。請諮詢如何解決這個問題。非常感謝。 – euler
看到我的編輯 - 加入'FileList(k)'附近的'Cstr()'。該函數需要一個String類型的參數(或者可以將參數類型切換爲變體)。 –
太棒了!非常感謝! – euler