拆分函数不创build数组()

我已经工作了几次这个代码,但我似乎总是有一个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,值超出范围。 太奇怪了 我已经testing了很多不同的方式,这是我find的。

它会返回数组中的第一条数据。 我可以改变我的分隔符到任何我想要的东西,并得到正是我期望的数组返回,如果我改变我的代码为fullArray()。 我也尝试使用Application.Index(fullArray,1,2),没有骰子。 我试过使用数组坐标和变体/string组合的各种组合。 没有。 请帮助,我将不胜感激。

这里是一个例子,包含在被拆分的单元格中。

 To License Contact, licensing@primarywavemusic.com, 212.661.6990/310.247.8630 Go, White, Know Happy, Rock, Upbeat, Catchy 

你需要首先testingUBound来确认实际上有3行。 UBound(fullArray)为2表示三行。 这是一个基于零的数组的例子。 第三行以fullArray(2)结尾。

如果您的input是三行,您可以使用以下命令进行拆分:

 fullArray(0) fullArray(1) fullArray(2) 

这是您调整的代码:

 For i = 3 To lRow If UBound(fullArray) >= 2 Then CSV = ActiveSheet.Range("BL" & i) fullArray() = Split(CSV, Chr(10)) ActiveSheet.Range("CE" & i).Value = fullArray(2) 'enter third line ActiveSheet.Range("CD" & i).Value = fullArray(1) 'enter second line Else 'this will output the cell address of any cell that 'doesn't have 3 lines within the cell Debug.Print ActiveSheet.Range("BL" & i).Address End If Next i