Excel VBA Макросы: Почему происходит ошибка overflow?

Автор synthex, 27 октября 2018, 14:47

synthex

Почему в этом коде происходит ошибка overflow:?

Sub Макрос()

    Dim sh As Worksheet, lr As Integer
   
    Set sh = Worksheets(1)
    lr = sh.Range("A" & sh.Rows.Count).End(xlUp).Row

End Sub

Администратор

На вашем эксель-листе много данных и номер последней строки с данными больше 65 тысяч. В переменную с типом данных Integer можно записать число до 65 тысяч.

Вместо типа данных Integer используйте тип данных Long:
Dim lr As Long

Используйте всегда тип данных Long. Тип данных Integer имеет смысл использовать, если в макросе много кода и нужно экономить место в оперативной памяти. Такое может потребоваться в компьютерных играх, где огромное кол-во кода; для макроса такая экономия оперативной памяти не актуальна.