Переменная, сохраняющая значение между вызовами макросов - PullRequest
0 голосов
/ 16 апреля 2020

новый программист с вопросом для более опытных руководителей. Я использую Office 365 ProPlus.

У меня есть переменная, которая иногда сохраняет свое значение между вызовами макроса. Рассматриваемая переменная - это счетчик, который я создал, чтобы подтвердить, что my for l oop работал столько раз, сколько я планировал. В конце макроса значение счетчика будет выводиться в ячейку моего листа. Я начал замечать, что вместо того, чтобы давать мне один и тот же ответ каждый раз, значение ячейки увеличивалось на число итераций в l oop после каждого вызова макроса (например, для al oop с пятью итерациями, после первый вызов моего счетчика будет равен 5, после второго вызова 10, после третьего 15 и т. д.). Если я остановлю макрос в середине, скажем, чтобы внести изменения, а затем перезапущу, счетчик сбрасывается до 0.

Вот соответствующие разделы кода:

Option explicit
Public Counter As Integer
Sub MyMacro()
Call Looper
Sheets("Sheet1").Range("g2") = Counter
End Sub

Sub Looper()
Dim k as Integer
For k = 33 to 4044
Counter = Counter + 1
         'Nonrelevant code
Next k
End Sub

Приведенный выше код имеет все активные использования переменной, не включая окна сообщений.

Я помещаю окна сообщений до и после вызова моего подпрограммы l oop на тот случай, если она как-то связана с тем, как счетчик печатал в ячейку, но окно сообщения перед l oop отображает результат предыдущего вызова, а окно сообщения после l oop увеличивается на число циклов. Я также добавил выражение наблюдения для Counter, и, если я не сбросил счетчик, прерывая процесс, как упомянуто выше, как только подпрограмма начинает, значение Counter переходит к тому, что было в конце предыдущего вызова.

Я могу установить начальное значение счетчика на 0, но почему счетчик вообще начинается со значения?

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