繁体   English   中英

数组值超过255个字符时VBA代码错误

[英]VBA code error when array value exceeds 255 characters

我从我正在处理的项目中提取了以下代码片段:

Sub testData()

Dim dataRange As Range
Set dataRange = Range("B2").Offset(1, 0).Resize(, 3)

Dim data As Variant
data = dataRange.Value2

Dim i As Integer
For i = 1 To UBound(data)
    Dim datarow As Variant
    datarow = WorksheetFunction.Index(data, i, 0)

    For j = 1 To dataRange.Count
        MsgBox "The data is " & datarow(j)
    Next j
Next i

End Sub

在此示例中,单元格B3,C3和D3中的值可能是文本,日期,数字。

只要指定范围内每个单元格的文本内容不超过255个字符,此代码即可正常执行。 如果更大,代码将在以下行引发错误:

datarow = WorksheetFunction.Index(data, i, 0)

我已经阅读了Excel中的各种String限制(使用2010),针对这些限制有各种解决方法。 但是,考虑到使用数据类型Variant,我不确定如何检查是否存在超出这些限制的文本值。

有谁能建议如何调整代码以允许超过255个字符的文本长度?

根据Tim的建议调整了我的代码,以直接访问数组而不是使用Worksheet.Index。 更新的代码如下:

For i = 1 To UBound(data)
   For j = 1 To dataRange.Count
      MsgBox "The data is " & data(i, j)
   Next j
Next i

这避免了255个字符限制的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM