数组值超过255个字符时出现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中的值可能是文本,date,数字。

只要指定范围内的每个单元格的文本内容不超过255个字符,该代码就可以正常执行。 如果更大的话,代码会在该行发出一个错误:

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

我已经阅读了有关Excel中的各种string限制(使用2010),其中有各种变通办法。 然而,考虑到使用数据typesVariant,我不确定如何检查超出这些限制的文本值的存在。

任何人都可以build议如何调整代码,以允许超过255个字符的文本长度?

根据Tim的build议调整我的代码直接访问数组,而不是使用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个字符限制的问题。