arrays - 当我尝试将元素放入单元格时,为什么我的分割数组会抛出错误?

标签 arrays vba excel

我正在编写一个程序来解析一个大型文本文件,其中包含多个非常长的数组,这些数组使用逗号分隔保存在一行中。

<valueslist list="-213.054,-200.3051,-193.7893,-185.3383,-186.351,-186.797,-185.2577,...

我正在使用 split 函数尝试将其分解,但是当我尝试执行程序时,它会抛出运行时错误 1004“应用程序定义或对象定义的错误

If InStr(Text, "<valueslist list=") <> 0 Then

    Column = 5
    Text = Replace(Text, "<valueslist list=" & Chr(34), "")
    Text = Replace(Text, Chr(34) & "/>", "")
    wrdArray = Split(Text, ",")
    For i = 0 To UBound(wrdArray)
        Cells(Row, Column).Value = wrdArray(i)
        Column = Column + 1
    Next i
    Row = Row + 1

End If

当我尝试调试时,它需要我

Cells(row, column).Value = wrdArray(i)

我在一个循环中有这段代码,但是当我尝试解析的数组变得大量时,它在我的文件中大约死了一半

最佳答案

这更像是一份事后报告:P

I have this code inside a loop but it dies about half way through my file when the arrays that I'm trying to parse become massve

由于它变得庞大,因此您的代码可能会尝试写入 Excel 中不存在的列。

如果您使用的是 Excel 2003,则只能写入 256 列,如果您使用的是 Excel 2007+,则限制为增加到16384

检查是否达到限制的最佳方法是调试行 UBound(wrdArray)

OP 最终检查并确认阵列当时的大小为 32k。

关于arrays - 当我尝试将元素放入单元格时,为什么我的分割数组会抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30512006/

相关文章:

javascript - 检查对象数组是否有 >1 个属性值 !== undefined

arrays - 从正则表达式结果中删除大括号

excel - 删除 || (管道)在列内文本的末尾

vba - 如何在Excel VBA中锁定行之间

excel - 从 Excel 发送邮件 - 运行时错误 '429' : ActiveX component can't create object

Javascript:如何在单击按钮时显示下一个数组值

arrays - Swift 使用 for-in 循环替换数组中的字符串

ms-access - 自动将不同的 Excel 文件导入 MS Access 2010 表

VBA比较两列并复制行

sql - 有没有办法让 VBA UDF 到 "know"还会运行哪些其他函数?