Вопрос № 150151: Помогите решить задачу на VBA Есть 30 combobox в них внесены значения(8, В, о/б) нужно подсчитать значения только 8, но не как-8+8+8+8+8........, а как 1+1+1+1+1 (8-количество отработанных дней) <img src="http://rusfaq.ru/images/Forum/10.gif" b...
Вопрос № 150.151
Помогите решить задачу на VBA Есть 30 combobox в них внесены значения(8, В, о/б) нужно подсчитать значения только 8, но не как-8+8+8+8+8........, а как 1+1+1+1+1 (8-количество отработанных дней)
Отвечает: Grigory
Здравствуйте, Борисова Ольга Сергеевна! Ну, самое типовое решение таких задач - это в цикле пройтись по всем контролам, которые есть на форме и проверять их тип -- если тип = combobox - смотреть, является ли выбранное значение восьмеркой; если является - прибавить к счетчику цикла 1. И все дела. Надеюсь, идея ясна.
Удачи, Ольга Сергеевна!
--------- Если хочешь быть счастливым - будь им! (Козьма Прутков)
Ответ отправил: Grigory (статус: Студент)
Ответ отправлен: 11.11.2008, 17:16
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 235135 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Борисова Ольга Сергеевна! Как выяснить тип контрола применяемого в VBA (по предложению Grigory) я не знаю, но можно проверить все имена в семействе Controls:
Код:
Dim k As Integer Dim v As Integer Dim o As Integer Private Sub CommandButton1_Click() Dim oCmb
As Object, s$ k = 0: v = 0: o = 0 For Each oCmb In Me.Controls s = oCmb.Name If InStr(1, s, "ComboBox") > 0 Then If oCmb.Value = "8" Then k = k + 1 ElseIf oCmb.Value = "В" Then v = v + 1 ElseIf oCmb.Value = "о/б" Then o = o + 1 End If End If Next End Sub
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.