WedX - журнал о программировании и компьютерных науках

Назначение Excel VBA ActiveX ListBox .Selection текстовому полю

Я пытаюсь щелкнуть выбор в ActiveX ListBox и присвоить значение TextBox, а затем очистить ListBox. Это кажется простым, но я получаю «Объект не поддерживает это свойство или метод» в первой строке

Это то, что я использую:

Private Sub ListBox1_Click()

    ActiveSheet.OLEObjects("TextBox3").Object.Value = ActiveSheet.OLEObjects("ListBox1").Object.Selection
    ActiveSheet.OLEObjects("ListBox1").Object.Selection = ""

End Sub

Приветствуются любые мысли о том, как сделать это слово или ресурсы для поиска.

24.01.2015

  • Не работает. Та же ошибка. 24.01.2015
  • Только что обнаружил, что ActiveSheet.OLEObjects(TextBox3).Object.Text = ActiveSheet.OLEObjects(ListBox1).Object.Value работает для получения выбора ListBox в TextBox. И ActiveSheet.OLEObjects(ListBox1).Object.Value =, кажется, помещает нулевое значение в значение ListBox. Когда я пытаюсь отправить msgbox, я получаю сообщение об ошибке «Недопустимое использование null. Но выбор ListBox по-прежнему выделен, и я бы хотел, чтобы это было не выбрано, если это возможно. 24.01.2015
  • Я пробовал использовать каждое из предложенных здесь предложений: stackoverflow. com/questions/18654252/, но ни один из них не может удалить выделение из элемента списка. 24.01.2015

Ответы:


1

Ваш код был бы чище, если бы он был написан так:

Private Sub ListBox1_Click()
  TextBox1.Value = ListBox1.Text
  ListBox1.Selected(ListBox1.ListIndex) = False
End Sub

Но есть проблема: вторая строка не работает внутри события ListBox1_Change (потому что создаст бесконечный цикл). Пробовал с Application.EnableEvents = False, не помогло.

Думаю нужно поставить сброс выделения в другое событие, типа KeyUp или MouseUp.

24.01.2015
  • Я думаю, что вижу. Отмена выбора сама по себе является событием щелчка, поэтому подпрограмма clickevent продолжает вызываться? 24.01.2015
  • да. В подобных случаях часто вы ставите Application.EnableEvents = False до и Application.EnableEvents = True после изменения объекта, который вызовет событие. Но в этом случае Excel, кажется, мешает вам даже попытаться. 24.01.2015
  • Ok. Благодарю. Что касается вашего предложения по наведению мыши, как мне определить значения X и Y? 24.01.2015
  • Я предложил использовать события MouseUp или KeyUp, потому что они запускаются после Click (я думаю). Вам не нужны х и у. 24.01.2015
  • Ok. Спасибо Стенчи. Я отдельно задам вопрос на доске. 24.01.2015
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]