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

时间:2014-04-10 21:51:07

标签: excel vba excel-vba

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

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中的各种字符串限制(使用2010),其中有各种变通方法。但是,如果使用数据类型Variant,我不确定如何检查是否存在超过这些限制的文本值。

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

1 个答案:

答案 0 :(得分:0)

根据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个字符限制的问题。