Курил сайт П.Ю.Климова, справку – не помогло По справке перед удалением ИСТИНА ОБЪЕКТ ИНДЕКС С помощью сайта создал конструкцию – но не работает. ListBox = frmReg.lbAuto For iCount = frmReg.lbAuto.ListCount - 1 To 1 Step -1 If frmReg.lbAuto.List(iCount, 11) <> frmReg.ComboBox1.Value Then lbAuto.RemoveItem iCount End If
И еще – можно ли сразу присвоить значения? lbAuto.List = iMassiv() или очистить листбокс? ЗЫ ОФИС2007
{quote}{login=Igor67}{date=31.03.2010 05:47}{thema=Программное удаление записей в ListBox Combobox}{post}Пытаюсь программно удалить записи lbAuto.RemoveItem iCount {/post}{/quote}Думаю имелось ввиду не удалить, а очистить некоторые из записей.
If frmReg.lbAuto.List(iCount, 11) <> frmReg.ComboBox1.Value Then lbAuto.List(iCount, 11) = ""
Однако, если Данные ЛистБокса заданы через RowSourse такой метод не прокатит - необходимо удалять данные с листа, либо заполнять ЛистБокс из массива.
По поводу заполнить из массива iMassiv = Range("A1:C10") bAuto.List = iMassiv
очищаем bAuto.clear
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Спасибо за ответы. Разобрался в причинах - заполнение листбокса через RowSourse не давало изменять значения. Изменил способ заполнения и что то похожее получилось. Решил через массивы, показалось удобней контролировать занесение значений:) Вариант на всякий случай, вдруг еще кто -то будет искать.
Я совсем недавно делал нечто подобное. Там списки свободных/занятых людей. Из одного ЛистБокса в другой перебрасывал. Использовал RowSource - именованный динамический. Выкрутился так - по изменённому ЛистБоксу строил новый диапазон на листе. Пришлось два цикла задействовать, но они малюсенькие.