Страница 1 из 1

VB6->Excel->VBA Macro вопрос

Добавлено: 18 май 2004, 13:30
Seaman
VB6 создает некоторую форму в Excel-е, эта форма получает чекбоксы, чтобы юзер в дальнейшем мог пересчитать результат отсеивая ненужные ему компоненты.
На темплейте Excel-овской формы пытаюсь написать манюсенький макрос:

Код: Выделить всё

Sub Recalculate_Click()
    Cells(3, 6).Value = Cells(5, 6).Value
    For intNumber = 1 To 31
        With ActiveSheet.CheckBoxes("cbo" & intNumber)
            If .Value = xlOn Then
                Cells(3, 6).Value = (Cells(3, 6).Value + Cells((5 + intNumber), 6).Value)
            End If
        End With
    Next
End Sub
При запуске, макрос считает, что надо, но выдает следующую ошибку:
Run-time error '1004':
Unable to get the CheckBoxes property of the Worksheet class
Оно и правда у Worksheet класса нет CheckBoxes.
А что делать? Как его заставить работать?
Помогите, кто может!

Добавлено: 18 май 2004, 13:50
папа Карло
ты же форму создаешь? посмотри нам на ворклисте наверное есть колекция форм... ищи свою форму... там скорее всего есть надор контролов (дочерних)... среди тех контролов ищи свои чекбоксы....


ЗЫ сам не пробовал.... просто говорю тот путь о которому сам бы пошел... :)

Добавлено: 18 май 2004, 17:11
Seaman
Искал, весь день только на это и убил.
Когда создаю эту форму напрямую в Excel-e из VBA есть чекбоксы, когда делаю ее в VB6 тоже есть чекбоксы, а вот когда зову ее из вышеприведенного, нет ничего. Ни чекбоксов, ни радио, ни ну ничего из формы вообще!
Есть, правда, Shapes, и они кажись заменяют всю эту формовую муру, но у них нет .Value!
А как же тогда определить отмечены они или нет?

re

Добавлено: 18 май 2004, 20:03
pank
mm = CheckBox1.Value
mm = CheckBox2.Value
get false or true depend on checked or not

Добавлено: 20 май 2004, 08:41
Seaman
Нашел!
Вся проблема была когда подходило к тому месту, где у меня не было вообще чекбоксов.
Теперь я их посчитал и поставил в петлю в максимум.
Работает!

2 pank: Спасибо за наводку!