Удовлетворение работы переменных при использовании в заявлении Case. Похоже, они заявлены в первом случае, независимо от того, относится ли это дело.VBA Variable Scope в случае Case
'The following code will throw an error
Select Case team
Case "Philadelphia Eagles"
dim record as String
Case "Dallas Cowboys"
dim record as String
End Select
Даже если «команда» не Philadelphia Eagles, он утверждает, что я уже объявил переменную «запись»
я был под впечатлением, что ничего в сазе было полностью пропускается, если этот случай не имеет отношения к делу.
'The following code works
Select Case team
Case "Philadelphia Eagles"
dim record as String
Case "Dallas Cowboys"
record = "8-8"
End Select
Просто хочу подтвердить, что я правильно понимаю положение дел здесь.
Спасибо!
Джош
Объявление переменной рассматривается до ввода кода в область действия (глобальная или локальная). Вы можете протестировать его, отлаживая код (вы увидите, что строка с «Dim ...» пропущена. Следовательно, не имеет значения, является ли объявление внутри или вне предложения 'Case', когда ваш код запускается если вы хотите изменить тип в зависимости от случая, объявите 'As Variant'. –
Хорошее объяснение объявляющих переменных можно найти здесь: [Переменные и типы данных] (http://www.functionx.com/vbaexcel/Lesson03.htm) –