gpt4 book ai didi

arrays - 拆分函数不创建数组()

转载 作者:行者123 更新时间:2023-12-04 22:04:41 25 4
gpt4 key购买 nike

我已经多次使用此代码,但我似乎总是对 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, licensing@primarywavemusic.com, 212.661.6990/310.247.8630
Go, White, Know
Happy, Rock, Upbeat, Catchy

最佳答案

您需要测试 UBound首先验证实际上有 3 行。一个 UBound(fullArray) 2 表示三行。这是一个基于零的数组的示例。第三行结束于 fullArray(2) .

如果您的输入是三行长,您可以使用以下方法进行拆分:

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

关于arrays - 拆分函数不创建数组(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26416363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com