Мой код должен быть простой проверкой длины таблицы.
Если длина таблицы увеличивается, запускается макрос.
К сожалению, он запускается, когда я изменяю какие-либо данные в существующей записи. Но это происходит только один раз!
Это происходит, когда я сначала открываю книгу, а затем пытаюсь что-то изменить в книге.После чего он запускается как должен, только когда вы добавили новую запись.Sub находится на рабочем листе, который содержит статическую ячейку A1
.Это проблема макроса.Кажется, он ведет себя так, как будто есть разница между количеством строк и статическим диапазоном.Но опять же, только при первом открытии рабочей книги!
Private Sub Worksheet_Calculate()
Dim n As Long
n = GetTableSize()
If n > LastRowNumber Then NewDatabaseEntry
' Always set LastRowNumber so that even after entries are deleted (n < NumRows),
' adding new entries will work correctly.
LastRowNumber = n
End Sub
Поддержка макроса в отдельном модуле:
Option Explicit
Public LastRowNumber As Long
'This will be used to monitor the number of rows in the
'Projects worksheet. This will then be compared to the
'Value of the formula in the TableSize worksheet.
'The value in TableSize will have a variable 'n'.
Public Function GetTableSize() As Long
GetTableSize = Worksheets("TableSize").Range("A1").Value2
End Function
Эта подпрограмма находится на рабочем листе, где находится отслеживаемая таблица:
Private Sub Workbook_Open()
LastRowNumber = GetTableSize()
End Sub
NewDatabaseEntry
- это модуль, который предупредил меня о том, что возникла проблема, поскольку он показывает всплывающее окно перед запуском.В противном случае, я бы не знал о существовании проблемы в первую очередь.Любая помощь будет оценена.