大数据集 VBA 的 For 循环崩溃

For-loop crashes with large data set VBA

我正在尝试为每个数据点指定一个索引值。它适用于小型数据集,但当我的数据集为 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

你们有解决这个问题的想法吗?

解决了。工作起来也快得多。

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

您可以像这样生成带有索引字段的二维变体数组(对于您的 75000 行示例):

X = Evaluate("=ROW(A1:A75000)")