#excel #vba #listview #userform
#excel #vba #listview #пользовательская форма
Вопрос:
Я пытался создать событие для своего приложения.
Я хочу иметь возможность щелкнуть по строке и после выбора этой строки нажать на мою кнопку «Удалить» и удалить строку из моей listview
и из моей электронной таблицы.
Я пытался использовать свойства ClearContent
и Remove
, но ни одно из них не сработало, и я получил различные ошибки, такие как несоответствие типов (ошибка 13).
Это мои пробы фрагментов кода:
Private Sub BtnDelete_Click()
ListViewEntries.ListItems.SelectedItem.Remove
End Sub
Private Sub BtnDelete_Click()
ListViewEntries.SelectedItem = ClearContents
End Sub
Private Sub BtnDelete_Click()
ListViewEntries.SelectedItem.ClearContents(i)
End Sub
Не уверен, в чем проблема. Кто-нибудь может помочь?
Ответ №1:
Это должно быть
Private Sub BtnDelete_Click()
ListViewEntries.ListItems.Remove ListViewEntries.SelectedItem.Index
End Sub
или
Private Sub BtnDelete_Click()
Call ListViewEntries.ListItems.Remove(ListViewEntries.SelectedItem.Index)
End Sub
Вызов означает:
ListViewEntries.ListItems.Remove(IndexOfItemToRemove)
Возьмите список ListViewEntries
, перейдите в ListItems
и Remove
что-нибудь. Теперь Remove
нужен инструмент, который нужно удалить. Этот аргумент является индексом элемента в списке. Поскольку вы хотите удалить выбранный элемент, вам необходимо отправить индекс выбранного элемента ListViewEntries.SelectedItem.Index
в качестве параметра для Remove
метода.
Комментарии:
1. Привет, друг! Я попробовал ваш код, и он работает, но как только я обновляю свой listview, строка все еще там. То же самое с моей электронной таблицей. У вас есть какие-либо идеи, почему?
2. Это только удаляет элемент из самого представления списка, но не манипулирует никакими данными рабочего листа! Это был бы совершенно другой вопрос. Поэтому вам нужно будет задать новый вопрос и показать, как вы заполняете поле списка данными.