Если операции, выполняемые путем изменения полей со списком, согласованы, вы можете написать одну подпрограмму, которая принимает значение поля со списком и что-то с ним делает. Затем на эту подпрограмму можно ссылаться в методе AfterUpdate
каждого комбинированного блока.
Например:
Private Sub DoComboBoxThing(varComboValue as Variant)
'Do something here with the combobox value
End Sub
Затем эта функция вызывается в поле со списком после обновления:
Private Sub Combo_Box_AfterUpdate ()
DoComboBoxThing Combo_Box.Value
End Sub
Вы можете указать все поля со списком для одной и той же подпрограммы. [ 116]
Мои имена маркировки почти всегда попадают в один из этих шаблонов:
В пакетных файлах я часто использую АД.
Как:
some_command || GOTO HELL
...
HELL:
echo "Ouch, Hot!"
В Фортране я использую goto для откатов, и я обычно запускаю от 999 назад (в Фортране, goto маркировки являются только числовыми),
call foo(err)
if (err /= 0) goto 999
call bar(err)
if (err /= 0) goto 998
call baz(err)
if (err /= 0) goto 997
! everything fine
error = 0
return
997 call undo_bar()
998 call undo_foo()
999 error = 1
return
Я также использую маркировки, больше, чем 1 000, если по некоторым причинам я хочу пропустить часть отката.
В C и других языках, я использовал бы rollbacknumber (например, rollback1, rollback2), таким образом, ясно из маркировки, что Вы собираетесь откатывать. Это - в основном единственное серьезное основание для использования goto.
Мне обычно только нужен он для 2 случаев. По сути, мои маркировки goto или начинаются или наконец.