Во вложении файл с примером анимации графиков функций на листах. Поясните пожалуйста как работает код для листа "Пример-1" ниже.
Конкретно не понятен смысл вот этого блока (вопросы в комментах к строкам):
[vba]
Код
If Example1IsRunning Then Example1IsRunning = False ' Зачем публичная переменная Example1IsRunnin переводится в состояние False ? End ' Эта команда означает выход их процедуры? Почему не написали Exit sub ? End If Example1IsRunning = True
[/vba]
Полный код вот:
[vba]
Код
Option Explicit
Public Example1IsRunning As Boolean
Sub RunExample1() If Example1IsRunning Then Example1IsRunning = False End End If Example1IsRunning = True Do DoEvents ThisWorkbook.Worksheets("Пример-1").Range("Base") = _ ThisWorkbook.Worksheets("Пример-1").Range("Base") + 0.25 DoEvents Loop
End Sub
[/vba]
Всем добрый день!
Во вложении файл с примером анимации графиков функций на листах. Поясните пожалуйста как работает код для листа "Пример-1" ниже.
Конкретно не понятен смысл вот этого блока (вопросы в комментах к строкам):
[vba]
Код
If Example1IsRunning Then Example1IsRunning = False ' Зачем публичная переменная Example1IsRunnin переводится в состояние False ? End ' Эта команда означает выход их процедуры? Почему не написали Exit sub ? End If Example1IsRunning = True
[/vba]
Полный код вот:
[vba]
Код
Option Explicit
Public Example1IsRunning As Boolean
Sub RunExample1() If Example1IsRunning Then Example1IsRunning = False End End If Example1IsRunning = True Do DoEvents ThisWorkbook.Worksheets("Пример-1").Range("Base") = _ ThisWorkbook.Worksheets("Пример-1").Range("Base") + 0.25 DoEvents Loop
Спасибо, вроде дошло. То есть, при запуске процедуры переменная Example1IsRunning по-умолчанию имеет значение False ? Странно, я думал булевые переменные при первичном объявлении имеют значение True...
Кстати, закомментил в в блоке строку Example1IsRunning = False и код все равно работает... Зачем она нужна тогда?
[vba]
Код
If Example1IsRunning Then ' Example1IsRunning = False End End If Example1IsRunning = True
[/vba]
Спасибо, вроде дошло. То есть, при запуске процедуры переменная Example1IsRunning по-умолчанию имеет значение False ? Странно, я думал булевые переменные при первичном объявлении имеют значение True...
Кстати, закомментил в в блоке строку Example1IsRunning = False и код все равно работает... Зачем она нужна тогда?
[vba]
Код
If Example1IsRunning Then ' Example1IsRunning = False End End If Example1IsRunning = True
По идее сначала в общем случае переменная = Empty, но поскольку мы объявили ее булевой, то у нее есть только 2 варианта - True или False. Empty - это ну никак не True (ничего - это не ИСТИНА), так ведь? Остается False Это так, типа объяснение на пальцах, нисколько на академичность не претендующее
А она и не нужна. End по-любому очищает все переменные и Example1IsRunning у нас снова становится False
По идее сначала в общем случае переменная = Empty, но поскольку мы объявили ее булевой, то у нее есть только 2 варианта - True или False. Empty - это ну никак не True (ничего - это не ИСТИНА), так ведь? Остается False Это так, типа объяснение на пальцах, нисколько на академичность не претендующее
А она и не нужна. End по-любому очищает все переменные и Example1IsRunning у нас снова становится False_Boroda_