我已經使用過這段代碼幾次了,但我總是在傳遞數組的Split
語句時遇到問題。這是一段代碼,這是行不通的,我不知道爲什麼分割函數不創建數組()
Private Sub parseCSV()
'Parse "Notes" column and return Moods/Keywords to their apropriate cells
Dim CSV As String
Dim fullArray() As String
Dim lRow As Long
Dim Keywords As String
Dim Moods As String
Dim i As Long
lRow = ActiveSheet().Range("BL" & ActiveSheet().Rows.Count).End(xlUp).Row
For i = 3 To lRow
CSV = ActiveSheet.Range("BL" & i)
fullArray() = Split(CSV, Chr(10))
ActiveSheet.Range("CE" & i).Value = fullArray(3)
ActiveSheet.Range("CD" & i).Value = fullArray(2)
Next i
End Sub
它給出一個Err-9,值超出範圍。這太奇怪了。我已經測試了很多不同的方法,這是我找到的。
它將返回數組中的第一條數據。如果我將代碼更改爲fullArray(),我可以將我的分隔符更改爲我想要的任何內容,並獲得我期望的返回數組的第一位。我也嘗試使用Application.Index(fullArray,1,2),沒有骰子。我嘗試過使用數組座標和變體/字符串組合的各種組合。沒有。請幫助,我將不勝感激。
這是一個包含在被拆分的單元中的例子;
To License Contact, [email protected], 212.661.6990/310.247.8630
Go, White, Know
Happy, Rock, Upbeat, Catchy
最有可能在BL的一個細胞不含有'人權委員會(10)'(** vbLf **),所以數組長度爲1('UBound'爲0)。你需要在使用之前確保'UBound(fullArray)> 2' 3。 – PatricK 2014-10-17 01:23:06
不,它確定地註冊一個Chr(10)閱讀我的問題的最後部分。我可以通過更改它來確定它是否找到了分隔符。如果我使用Chr(10)作爲我的分隔符,它將返回所有分隔符。如果我使用諸如「%」之類的錯誤字符(在單元格中爲否),它會將整個單元格返回給我。埃爾戈,「斯普利特」必須承認細胞中的Chr(10)。儘管這是一個很好的想法。我已經測試過了。任何其他想法? – 2014-10-17 01:56:21