Самый примитивный способ объявить статическую переменную
Code:
Static boolValue As Boolean
...
If Not boolValue Then
boolValue = True
End If
но она может "обнулиться" в самый неподходящий момент (например, при программном сбое, нажатии на кнопку останов в VBA-редакторе, входе в режим конструктора). Вешать код на событие открытия рабочей книги тоже не вариант - вдруг, пользователь отменит обновление отчета. Самый надежный способ, на мой взгляд, добавлять значение на скрытый лист (например, в ячейку A1) и проверять при очередном обновлении