数组值超过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个字符限制的问题。