解析製表符分隔值我試圖從Excel文件(即製表符分隔文本)複製剪貼板數據,並將其解析成字典的集合。這個想法是,每一行將由一個從標題映射到單元格值的字典表示。複製數據中的第一行將包含標題。在VBA
獲取剪貼板中的文字是很容易的:
Dim dataObj As DataObject
Dim clipString As String
Set dataObj = New DataObject
dataObj.GetFromClipboard
clipString = dataObj.GetText
然後我分裂輸入到行:
Dim strRows As Variant
strRows = Split(clipString, vbNewLine)
接下來,我嘗試提取標題:
Dim headers As New Collection
Dim strCols As Variant
strCols = Split(strRows(0), vbTab)
For col = LBound(strCols) To UBound(strCols) - 1
headers.Add strCols(col)
Next
最後我提取行:
Dim cells
Dim rows As New Collection
For i = 1 To UBound(strRows) - 1
strCols = Split(strRows(0), vbTab)
Set cells = CreateObject("Scripting.Dictionary")
For col = 0 To UBound(strCols) - 1
cells.Add headers.Item(col + 1), strCols(col)
Next
rows.Add cells
Next
不過,我得到一個錯誤。在線
headers.Add strCols(col), col
訪問帶回運行時錯誤'12':類型不匹配。
更新固定上面的問題,感謝您的建議。現在我收到一條錯誤信息
Set cells = CreateObject(Scripting.Dictionary)
424:需要對象。
任何提示,以什麼我diong錯了 - VBA是不是我的強項。
更新2修復了這個問題太(下面的建議感謝)。代碼現在可用。
謝謝,這是鏈中的最後一個環節。典型的MSFT文檔是錯誤的(我已經直接複製粘貼該位)。 – jwoolard 2009-06-23 13:04:17