Excel-VBA UserForm ListBox - Как я могу выделить вариант без выбора - PullRequest
0 голосов
/ 28 апреля 2018

Ореховая скорлупа:

Что эквивалентно Me.ListBox1.Selected(2) = True, но для выделения вместо выбора ?? (Выделение может быть неправильным словом, но я уверен, что я видел это раньше в этом контексте - обводка вокруг параметра вместо его фактического выбора)

** Пробовал **

Me.ListBox1.ListIndex = 2

тоже ничего не делает.

With Me.ListBox1
    saveVal = .List(0)
    .Value = ""
    .Value = saveVal
End With

выдает ошибку "Неверное значение свойства"

Справка:

Почему мне нужно дважды щелкнуть по некоторым элементам / коробкам?

У меня есть пользовательская форма с несколькими ListBox, которые заполняются добавлением элементов один за другим, что отлично работает.

Настройки ListBox были изменены на MultiSelect = 1 - fmMultiSelectMulti и ListStyle = 1 - fmListStyleOption

Проблема заключается в том, что при попытке выбрать опцию в некоторых полях в первый раз она просто выделяет ее, не выбирая ее, тогда как в других полях и других попытках она может или не может сразу выбрать опцию. Похоже, что это не те же виновники, а случайность - имеет ли это какое-то отношение к тому, где я нажимаю на эту опцию? На элементе текст вместо поля элемента? Почему это работает на некоторых, а не на других?

После того, как я выбрал одну опцию в окне, он позволяет мне выбрать любую другую одним щелчком мыши, что является желаемым поведением.

Я нашел ссылку, где кто-то предположил, что такое поведение было из-за поврежденной книги, но я не думаю, что это так. Я только что создал новую книгу с 1 списком в форме пользователя, изменил на желаемые настройки, 6 раз скопировал список, поместил источник списков как rand () в столбцы A: G, и у меня все еще возникает та же проблема.

Редактировать: Мой план состоит в том, чтобы "выделить" верхнюю опцию в каждом блоке, чтобы при первом щелчке по блоку не было выбора, кроме как выбрать (потому что что-то уже выделено) ...

1 Ответ

0 голосов
/ 28 апреля 2018

Уловка для решения моей НАЧАЛЬНОЙ проблемы, кажется, была после заполнения каждого списка, чтобы установить .ListIndex = 0, но это работало только после использования .SetFocus

Решено! (На данный момент, я думаю)

Несмотря на то, что это ничего не выделяет, оно позволяет мне выбрать что-то в первый раз.

...