Как я уже сказал в своем комментарии к OP - Worksheet_Change
само по себе не будет работать, так как будет вычислять последнюю ячейку на основе только что введенных данных.
Этот код вычисляет последнюю ячейку при перемещении ячеек (я пробовал событие Calculate
, но это происходит после того, как вы добавили данные, так же как и в случае события Change
).
Option Explicit
Private rLastCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set rLastCell = Cells(Rows.Count, 2).End(xlUp)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(Cells(1, 2), rLastCell)) Is Nothing Then
MsgBox "Updating sheets"
Call Thickborders2
End If
End Sub
Первые две строки должны быть в самой верхней части модуля.