Основной проблемой является имя модуля, Constants
- оно вводит в заблуждение, поскольку ни общедоступная / глобальная переменная , ни общедоступное свойство get-only не являются константы .
Боковой узел, константы, не назначаемые непостоянным выражениям, не являются ограничением, характерным для VBA.
Свойства являются совершенно допустимыми в стандартных модулях, а общедоступные свойства «только для чтения» - это прекрасный способ показать значение только для чтения, которое необходимо построить во время выполнения.
публичные переменные очищаются при возникновении ошибки или при остановке кода
blockquote>Предположение «когда происходит ошибка» включает нажатие End kbd> и эффективное завершение контекста выполнения, что справедливо для всего, что экспонируется где угодно, будь то глобальная переменная, открытое свойство, объект или что-либо, что существует в памяти во время выполнения ... и это просто обычные вещи - значение просто доступно по запросу в любое время.
Опять же, для этого не нужно иметь модуль класса, это вполне допустимо в стандартном модуле:
Option Explicit Public Property Get MyString() As String MyString = "\R;;" & Chr(163) End Property
Если воссоздание строки при каждом обращении к объекту-получателю свойства является проблемой, тогда вам нужен способ сохранить его значение в вспомогательном поле - но тогда это вспомогательное поле (будь то в классе или в стандартном модуле) имеет значение только в том случае, если существует контекст выполнения, то есть у него точно такая же проблема, что и у глобальной переменной было бы: выполнение останавливается, оно ушло.
Одним из обходных путей может быть использование класса с атрибутом
VB_PredeclaredId
, установленным вTrue
(по умолчанию -False
).VERSION 1.0 CLASS BEGIN MultiUse = -1 'True END Attribute VB_Name = "Class1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = True Option Explicit Private internalString As String Private Sub Class_Initialize() internalString = "\R;;" & Chr(163) End Sub Public Property Get MyString() As String MyString = internalString End Property
И теперь VBA будет автоматически создавать экземпляр
Class1
всякий раз, когда на него ссылаются, , как только на него ссылаются , и этот экземпляр остается «живым», пока операторEnd
не будет явно выполнен. или контекст выполнения прекращается иным образом. Точно так же, как, скажем, классUserForm
, вы получаете доступ к этому экземпляру по умолчанию , используя имя класса в качестве идентификатора:Debug.Print Class1.MyString
Если экземпляр по умолчанию существовал при ссылке на
Class1
,internalString
возвращается. Если этого не произошло, то выполняетсяClass_Initialize
, а затем возвращаетсяinternalString
.
firebug
. Существует также чистая версия JavaScript, которая работает в IE, названном firebug lite
.
Это позволяет Вам выключать или изменять любого CSS
Вы хотите на лету.
Ответить на фактический заголовок вопроса: Я использую FireBug!
Расширение Веб-разработчика делает некоторый хороший материал также.
Плагин Firebug для Firefox имеет некоторые хорошие средства отладки CSS.
Firebug действительно является Вашим другом здесь!
Щелкните правой кнопкой по части своей страницы, выберите "Inspect element", и это скажет Вам все стили, которые применяются к тому элементу. Которые заменяются, вычеркнуты, таким образом, Вы видите точно, где Вы пошли не так, как надо.
Можно также использовать блок проверки допустимости CSS W3C, если у Вас нет доступа к Firebug. Это будет обычно мочь указать на синтаксические ошибки.
Горилла Magilla подозревает отсутствие ":
<a href=reception">Wedding Reception</a>
поджигатель является спасителем в этом виде ситуации!