Получение ошибки времени выполнения 6 в макросе, который автоматически заполняет пустые значения

Итак, я использую макрос автозаполнения отсюда или приведенный ниже код: https://www.extendoffice.com/documents/excel/3974-excel-repeat-a-value-until-new-value-is-seen.html

Sub FillDown()
Dim xRng As Range
Dim xRows As Long, xCols As Long
Dim xRow As Integer, xCol As Integer
Set xRng = Selection
xCols = xRng.Columns.CountLarge
xRows = xRng.Rows.CountLarge
For xCol = 1 To xCols
  For xRow = 1 To xRows - 1
    If xRng.Cells(xRow, xCol) <> "" Then
      xRng.Cells(xRow, xCol) = xRng.Cells(xRow, xCol).Value
      If xRng.Cells(xRow + 1, xCol) = "" Then
        xRng.Cells(xRow + 1, xCol) = xRng.Cells(xRow, xCol).Value
      End If
    End If
  Next xRow
Next xCol
End Sub

В моих данных около 300 000 строк. Макрос хорошо работает с парой из 1000 строк, но я получаю ошибку времени выполнения при применении его к большим наборам данных. Можно ли оптимизировать этот код для больших данных?


person Steven Cunden    schedule 04.03.2019    source источник


Ответы (1)


Заменять:

Dim xRow As Integer, xCol As Integer

с участием:

Dim xRow As Long, xCol As Long
person Gary's Student    schedule 04.03.2019