![](/img/trans.png)
[英]VBA FormulaArray range class error when the Characters are less than 255
[英]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.