VB6 & MSForms.ComboBox в Excel

Программирование на Visual Basic for Applications
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

VB6 & MSForms.ComboBox в Excel

Сообщение Andrey Fedorov » 13.04.2007 (Пт) 22:26

Что-то не пойму - при выполнении следующего кода в VB6 значение ComboBox-у присваивается верно, но он остается неизменным пока не дернешь его DropDown:

Код: Выделить всё
FillComboBox ws.OLEObjects("cbGrЧисло).Object

Private Sub FillComboBox(cb As MSForms.ComboBox)
    cb.Clear
    For i = 1 To 31
         cb.AddItem CStr(i)
    Next i
    cb.Value = CStr(Day(Date))
End Sub


А если в таком-же коде присваивается текст (например, название месяца), то и выделенное значение при DropDown остается старым...

Есть возможность поправить?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.04.2007 (Пт) 23:56

У меня нет такого симптома вообще. Excel 2003 (11.5612)
Код: Выделить всё
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    FillComboBox Лист1.OLEObjects("ComboBox1").Object
End Sub

Private Sub FillComboBox(cb As MSForms.ComboBox)
    cb.Clear
    For i = 1 To 31
         cb.AddItem CStr(i)
    Next i
   
    cb.Value = CStr(Day(Date))
End Sub

Значение сразу же попадает безо всяких-яких в комбобокс.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 14.04.2007 (Сб) 1:15

Amed писал(а):Значение сразу же попадает безо всяких-яких в комбобокс.


Я писал - код выполняется из под VB6:

Код: Выделить всё
    Set ea = New Excel.Application
    Set wb = ea.Workbooks.Open(m_sTempFile)
    Set ws = wb.Worksheets![МойЛистик]


И далее - см начало топика.

Access-2007 (12.0.4518.1014)
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.04.2007 (Сб) 19:26

Код: Выделить всё
cb.Value = CStr(Day(Date))
cb.Activate


Заметьте - при клике на комбобокс у меню Office пропадает фокус. Кликаю в другую ячейку - опять появляется.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList