Страницы: 1
RSS
Удаление строк из ListBox, макрос удаляет строки
 
При нажатии на кнопку, работает код:
Код
With AddedListBox       
For i = .ListCount - 1 To 0 Step -1
If .Selected(i) = True Then
   .RemoveItem (i)
  x = x - 1
End If
Next
При выделении первой и последующих строк (по одной) он работает, когда я выделяю последнюю строку, он удаляет все, почему так, не пойму
 
И еще, кстати, не пойму как вызвать msgbox при не выделенной строке для удаления во время нажатия на кнопку!
 
Код следует оформлять соответствующим тегом. Исправьте.
 
Возможно, ошибка в том, что в коллекции в отличии от массива, счет начинается с 1, а не с 0
 
А где здесь коллекция? Именно с нуля начинается.
 
а почему listcount-1 ?

и лучше бы с фалом-примером..
Изменено: Слэн - 25.04.2015 11:45:38
Живи и дай жить..
 
Слэн, так ведь с нуля массив...
 
Цитата
sh_ramil написал: когда я выделяю последнюю строку, он удаляет все
У меня такого не происходит: удаляются только выбранные позиции.
 
Слэн, примерно вот так
 
При выделении последней строки удалается весь список
Не пойму, почему
 
Вашего примера не было, см. мой - всё корректно удаляется.
 
Цитата
sh_ramil написал: Не пойму, почему
потому что после удаления последней выделение переходит на предпоследнюю. Как вариант добавьте выход из цикла Exit For.
 
Ничего не пойму, написал такой же код, все равно удаляет все строки
 
А в моём файле как?
 
sh_ramil у ЮрийМ в свойствах листбокса стоит мультивыбор у вас нет.
Изменено: V - 25.04.2015 14:09:30
 
Так там без мультивыбора? Файл не смотрел... Тогда
Цитата
V написал:  добавьте выход из цикла Exit For
 
Теперь разобрался, огромное спасибо!!!!
Страницы: 1
Наверх