考慮TIFS的以下目錄:如何從目錄中的圖像創建多維數組?
EX0008-001.tif
EX0091-001.tif
EX0091-002.tif
EX0091-003.tif
EX0777-001.tif
EX0777-002.tif
我需要編寫VBA腳本編譯特定格式的輸入文件。每個TIF圖像被構建爲DOCUMENT-PAGE
,因此EX0008-001.tif
是文檔EX0008
的頁面1的TIF圖像。爲了編譯輸入文件,我首先需要把圖像轉換成一個多維陣列中,如下所示:
Array(
[EX0008] = Array (001)
[EX0091] = Array (001, 002, 003)
[EX0777] = Array (001, 002)
)
對於這一點,我必須使用VBA。問題是我只有對PHP的理解。我一直在尋找關於如何在VBA中解決我的問題的明確指南,但沒有成功。來自@AutomatedChaos的示例代碼對我來說太高級了。
Set objShell = CreateObject("WScript.Shell")
currentDirectory = objShell.CurrentDirectory
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(currentDirectory)
Set TifCollection = CreateObject("System.Collections.ArrayList")
For each objFile in objFolder.Files
If objFso.GetExtensionName (objFile.Path) = "tif" Then
fileNumber = Split(objFile.Name, "-")(0)
pageNumber = Split(objFile.Name, "-")(1)
If Not TifCollection(fileNumber).Exists Then
Set TifCollection.Item(fileNumber) = CreateObject("System.Collections.ArrayList")
End If
TifCollection.Item(fileNumber).Add pageNumber
End If
Next
因爲這也是我第一次引入VBA,所以我想保持我的代碼儘可能簡單和簡潔。你能幫我獲得上面的代碼工作嗎?我不明白我得到的錯誤信息(Class doesn't support Automation: TifCollection
),因爲我將TifCollection
定義爲數組,而不是類?
「System.Collections.ArrayList」是VB.NET你們的榜樣陣列不匹配VBA中的任何結構:也許你正在尋找的東西更像是一個Dictionary對象(您可以在找到' Scripting.Runtime'庫)? –
'System.Collections.ArrayList'只能通過VBScript使用,如果您使用VBA,請按照建議使用Dictionary。 – AutomatedChaos