Другие языки программирования и технологии
VBA. Чем заменить множествееное использование конструкции "If...Then"?
.. Например: If a = 1 Then mes = "Январь" If a = 2 Then mes = "Февраль" If a = 3 Then mes = "Март" If a = 4 Then mes = "Апрель" If a = 5 Then mes = "Май" If a = 6 Then mes = "Июнь" If a = 7 Then mes = "Июль" If a = 8 Then mes = "Август" If a = 9 Then mes = "Сентябрь" If a = 10 Then mes = "Октябрь" If a = 11 Then mes = "Ноябрь" If a = 12 Then mes = "Декабрь"
В паскале было case of
Мож и есть что подобное
Мож и есть что подобное
Sub ppp()
aaa = "январь"
Select Case aaa
Case "январь"
Cells(1, 1) = 1
Case "февраль"
Cells(1, 1) = 2
Case "март"
Cells(1, 1) = 3
End Select
End Sub
aaa = "январь"
Select Case aaa
Case "январь"
Cells(1, 1) = 1
Case "февраль"
Cells(1, 1) = 2
Case "март"
Cells(1, 1) = 3
End Select
End Sub
массив.. . 13 элементов. .
1 элемент пустой.. . (либо отнимать от ткущего месяца 1.. тогда 12 элементов )))
а остальные месяц.. .
а дальше mas(i)
Dim Array_Month(12) As String
Array_Month(1)= "Январь"
Array_Month(2) = "Февраль"
Array_Month(3)= "Март"
Array_Month(4) = "Апрель"
Array_Month(5) = "Май"
Array_Month(6) = "Июнь"
Array_Month(7) = "Июль"
Array_Month(8) = "Август"
Array_Month(9) = "Сентябрь"
Array_Month(10) = "Октябрь"
Array_Month(11) = "Ноябрь"
Array_Month(12) = "Декабрь"
mes = Array_Month(a);
1 элемент пустой.. . (либо отнимать от ткущего месяца 1.. тогда 12 элементов )))
а остальные месяц.. .
а дальше mas(i)
Dim Array_Month(12) As String
Array_Month(1)= "Январь"
Array_Month(2) = "Февраль"
Array_Month(3)= "Март"
Array_Month(4) = "Апрель"
Array_Month(5) = "Май"
Array_Month(6) = "Июнь"
Array_Month(7) = "Июль"
Array_Month(8) = "Август"
Array_Month(9) = "Сентябрь"
Array_Month(10) = "Октябрь"
Array_Month(11) = "Ноябрь"
Array_Month(12) = "Декабрь"
mes = Array_Month(a);
Ключевое слово Case обеспечивает структурированный эквивалент последовательности условных операторов той же самой переменной.
Оператор case более изящен, более эффективен, и его проще обслуживать чем множество вложений if.
например
var
colour : TPrimary;
number : Integer;
begin
// Показ цвета до того как его иму будет назначенно значение
ShowColour(colour);
// Теперь устанавливаем цвет и пытаемся снова
colour := Green;
ShowColour(colour);
// Вычисления также могут использоваться в операторе case
number := 17;
Case number mod 2 of
0 : ShowMessage(IntToStr(Number)+' mod 2 = 0');
1 : ShowMessage(IntToStr(Number)+' mod 2 = 1');
else ShowMessage(IntToStr(Number)+' mod 2 неизвестно');
end;
end;
// Процедура для показа переданного цвета
procedure TForm1.ShowColour(colour : TPrimary);
begin
// Использование оператора Case для того, чтобы увидеть цвет переданной переменной
// Обратите внимание насколько важно предложение else, даже при том, что мы
// охватили, очевидно, все значения TPrimary!
Case colour of
Red : ShowMessage('colour Красный');
Green : ShowMessage('colour Зеленый');
Blue : ShowMessage('colour Синий');
Yellow : ShowMessage('colour Желтый');
else ShowMessage('colour неизвестен! ');
end;
end;
Oy eto na delphi taka a вот VB
Dim number As Integer = 8
Select Case number
Case 1 To 5
Debug.WriteLine("Between 1 and 5, inclusive")
' The following is the only Case clause that evaluates to True.
Case 6, 7, 8
Debug.WriteLine("Between 6 and 8, inclusive")
Case 9 To 10
Debug.WriteLine("Equal to 9 or 10")
Case Else
Debug.WriteLine("Not between 1 and 10, inclusive")
End Select
Оператор case более изящен, более эффективен, и его проще обслуживать чем множество вложений if.
например
var
colour : TPrimary;
number : Integer;
begin
// Показ цвета до того как его иму будет назначенно значение
ShowColour(colour);
// Теперь устанавливаем цвет и пытаемся снова
colour := Green;
ShowColour(colour);
// Вычисления также могут использоваться в операторе case
number := 17;
Case number mod 2 of
0 : ShowMessage(IntToStr(Number)+' mod 2 = 0');
1 : ShowMessage(IntToStr(Number)+' mod 2 = 1');
else ShowMessage(IntToStr(Number)+' mod 2 неизвестно');
end;
end;
// Процедура для показа переданного цвета
procedure TForm1.ShowColour(colour : TPrimary);
begin
// Использование оператора Case для того, чтобы увидеть цвет переданной переменной
// Обратите внимание насколько важно предложение else, даже при том, что мы
// охватили, очевидно, все значения TPrimary!
Case colour of
Red : ShowMessage('colour Красный');
Green : ShowMessage('colour Зеленый');
Blue : ShowMessage('colour Синий');
Yellow : ShowMessage('colour Желтый');
else ShowMessage('colour неизвестен! ');
end;
end;
Oy eto na delphi taka a вот VB
Dim number As Integer = 8
Select Case number
Case 1 To 5
Debug.WriteLine("Between 1 and 5, inclusive")
' The following is the only Case clause that evaluates to True.
Case 6, 7, 8
Debug.WriteLine("Between 6 and 8, inclusive")
Case 9 To 10
Debug.WriteLine("Equal to 9 or 10")
Case Else
Debug.WriteLine("Not between 1 and 10, inclusive")
End Select
Похожие вопросы
- Оператор IF...Then...ELSE
- Заменить цикл условным оператором if
- Нужен простой ЯП как для хобби, так и вспомогательный в работе, что то на замену VBA.
- Прошу теоретической помощи с VBA! (не кодер)
- VBA - Парсинг в Excel-VBA курса ЦБ
- Програмирование в VBA
- VBA EXCEL. Где найти список формул по английски??? чтоб потом вписывать формулы через VBA.
- Как решать задачи по VBA
- Как упростить программу на паскале. Т.Е. без оператора "inc" и "if .. in .. then else ...;"-13 строка.
- помогите с vba excel