我正在尝试为每个数据点赋予一个indexvalue。它适用于小型数据集,但当我的数据集为750,000时程序崩溃。 Excel提供以下错误消息:对象范围的方法值失败。
以下是我的一些代码:
Set datatable = sDataImport.ListObjects("dataTable")
Dim lastRow As Single
'为导入的数据提供索引值
lastRow = sDataImport.ListObjects("dataTable").ListRows.Count
For i = 1 To lastRow
datatable.ListColumns("index").DataBodyRange(i, 1).value = i
Next i
你们有什么想法来解决这个问题吗?
答案 0 :(得分:3)
它已经解决了。工作得更快。
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlManual
Dim arr As Variant
ReDim arr(1 To lastRow, 1 To 1) As Variant
For i = 1 To lastRow
arr(i, 1) = i
Next
datatable.ListColumns("index").DataBodyRange.value = arr
Application.ScreenUpdating = True
Application.EnableEvents = True
答案 1 :(得分:0)
您可以生成具有索引字段的2D变体数组(对于您的75000行样本):
X = Evaluate("=ROW(A1:A75000)")