Страница 1 из 1
if\ case vba
Добавлено: 17 ноя 2010, 17:36
akva
помогите решить 2 задачки, только начали проходить vba а уже грузят по жести
1. IF. Определить делителем каких из чисел a,b,c является число k
2. CASE. Составить программу которая по заданным году и номеру месяца m определяет количестводней в этом месяце
Буду очен благодарен если кто нибудь откликнется
Re: if\ case vba
Добавлено: 17 ноя 2010, 18:48
VictorM
Насчет If не совсем понял, Case, см. применение и использование.
Управляющая инструкция Select Case 'End Select
Re: if\ case vba
Добавлено: 18 ноя 2010, 12:06
Asya
2.
Функция:
Код: Выделить всё
Function MonthDayCount(iyear As Integer, imonth As Integer) As Integer
Dim LeapYear As Boolean
LeapYear = IIf(month(DateSerial(iyear, 2, 29)) = 2, True, False)
Select Case imonth
Case 1, 3, 5, 7, 8, 10, 12
MonthDayCount = 31
Case 4, 6, 9, 11
MonthDayCount = 30
Case 2
MonthDayCount = IIf(LeapYear = True, 29, 28)
End Select
End Function
Re: if\ case vba
Добавлено: 19 ноя 2010, 07:03
SAS888
1. Возможно, что нужно нечто подобное:
Код: Выделить всё
Sub Делитель()
Dim a As Long, b As Long, c As Long, k As Long, msg As String
a = 12: b = 13: c = 14: k = InputBox("Введите делитель k")
If a Mod k = 0 Then msg = ", " & a
If b Mod k = 0 Then msg = msg & ", " & b
If c Mod k = 0 Then msg = msg & ", " & c
If Len(msg) = 0 Then MsgBox "Число " & k & " не является делителем для чисел " & a & ", " & b & " и " & c _
Else MsgBox "Число " & k & " является делителем для: " & Right$(msg, Len(msg) - 2)
End Sub
2. Если Вам обязательно требуется использовать Select Case, то
Asya Вам уже дал ответ.
Хотя, данную задачу можно решить существенно проще:
Код: Выделить всё
Sub Год_Месяц()
Dim Y As Integer, M As Integer
Y = InputBox("Введите год"): M = InputBox("Введите номер месяца")
MsgBox "Дней в " & G & " году, в месяце " & MonthName(M) & ": " & Day(DateSerial(Y, M + 1, 1) - 1)
End Sub
P.S. Если нужно, добавьте проверку на "правильность" ввода данных пользователем.