Ошибка при расчете последней строки вспомогательного столбца - PullRequest
0 голосов
/ 06 марта 2019

Я использую приведенный ниже код в VBA для заполнения формулы в ячейке Y3: AB3 до последней строки столбца X, но Excel заполнит формулу до последней строки плюс еще 3000 строк. Я проверил эту формулу с другим файлом и набором данных, но получаю ту же ошибку. Пожалуйста, вы можете посоветовать.

Спасибо, R

Sheets("CJI Data").Select
Dim LastRow As Long
Dim Sht As Worksheet
Set Sht = ActiveWorkbook.Sheets("CJI Data")
LastRow = Sht.Range("X3").CurrentRegion.Rows.Count
Range("Y3:AB3" & LastRow).FillDown
Range("A2:AB2").Select

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Вы не должны иметь AB3, просто AB.Ссылка Range должна включать номера первой и последней строк.Вы добавляете дополнительные 3 перед номером последней строки, что приводит к дополнительным 3000 строкам.

Range("Y3:AB" & LastRow).FillDown

Дополнительно, как указано @ JohnColeman , используя CurrentRegion.Rows не надежный способ получить последний ряд.Это может привести к непредвиденным результатам, если ваши данные не начинаются со строки 1.

Вместо этого вы можете использовать End(xlUp) (также предлагается @ Darrell H ):

With Sht
    LastRow = .Cells(.Rows.Count, "X").End(xlup).Row
End With
0 голосов
/ 06 марта 2019

Вы можете попробовать:

Sub Test()
    Sheets("CJI Data").Select
    Dim LastRow As Long
    Dim Sht As Worksheet
    Set Sht = ActiveWorkbook.Sheets("CJI Data")
    LastRow = Sht.Range("X1048576").End(xlUp).Row
    Range("Y3:AB3" & LastRow).FillDown
    Range("A2:AB2").Select
End Sub

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...