помогите решить 2 задачки, только начали проходить vba а уже грузят по жести
1. IF. Определить делителем каких из чисел a,b,c является число k
2. CASE. Составить программу которая по заданным году и номеру месяца m определяет количестводней в этом месяце
Буду очен благодарен если кто нибудь откликнется
if\ case vba
Модератор: Naeel Maqsudov
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
Насчет If не совсем понял, Case, см. применение и использование.
Управляющая инструкция Select Case 'End Select
Управляющая инструкция Select Case 'End Select
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
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
1. Возможно, что нужно нечто подобное:
2. Если Вам обязательно требуется использовать Select Case, то Asya Вам уже дал ответ.
Хотя, данную задачу можно решить существенно проще:
P.S. Если нужно, добавьте проверку на "правильность" ввода данных пользователем.
Код: Выделить всё
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
Хотя, данную задачу можно решить существенно проще:
Код: Выделить всё
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