Страницы: 1
RSS
Переменная с нарастающим итогом, сделать так чтобы переменная увеличивалась на 1
 
Здравствуйте! Как сделать так чтобы в макросе переменная увеличивалась на 1? То есть первый раз я макрос запускаю и переменная = 1 , второй раз = 2 , третий раз =3
 
Anton_Kozlov, здравствуйте
Объявите её как Dim, но ПЕРЕД первым макросом в модуле или внутри макроса, но как Static
Скопируйте этот код в отдельный пустой модуль и позапускайте - на практике понятнее
ЧТО ТАКОЕ ПЕРЕМЕННАЯ И КАК ПРАВИЛЬНО ЕЁ ОБЪЯВИТЬ?
Изменено: Jack Famous - 22.01.2021 16:43:27
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
i=i+1  :D
 
объявить глобальную переменную. Будет дозаписываться, пока открыта книга. Или до первой ошбки в VBA, когда обнуляются все глобальные переменные.
Записвайте в ячейку.
 
Я нашел этот код. Но не получается с ним. Значит в ячейку надежней?

Код
Sub Inc(ByRef i As Integer)
 i = i + 1  
End Sub
..
Static value As Integer
inc value
inc value
Изменено: Anton_Kozlov - 22.01.2021 16:44:00
 
Anton_Kozlov, это не код, это огрызки того, что, возможно, было кодом.
 
vikttur,Спасибо. Решил сделать как вы сказали. Не знаю почему раньше не сделал так. Мои сомнения, думал что так будет лучше) Спасибо!
 
Код
Sub IncForever()
  Static i&
  i = i + 1
  MsgBox i ' эту строку можно выкинуть без ущерба для основной задачи
End Sub
Изменено: Ігор Гончаренко - 22.01.2021 16:58:51
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Anton_Kozlov написал:
vikttur ,Спасибо. Решил сделать как вы сказали
я так понимаю, вас еще ни разу не привлекали к уголовной ответственности за хранение...
данных в глобальных переменных
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
На Лист1 в ячейке A1 каждый раз при открытии значение будет увеличиваться на 1
Код
Sub Auto_Open()
Sheets("Лист1").Select
i=Cells(1, 1)+1
Cells(1, 1) = i
End Sub
Изменено: Сергей Зотов - 22.01.2021 19:08:01
 
Выделять лист не нужно. Достаточно указать родителя ячейки.
Страницы: 1
Наверх