![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 15
|
![]()
Всем доброе время суток !
Опции списка элемента управления ListBox извлекаются из диапазона ячеек, определяемого свойством RowSourse. Наведя курсор мыши опция выделяется а значение опции записывается в ячейку листа, например так: Worksheets("Лист1").Cells(intI, 1).Value=UserForm1.ListBox1 Для того чтобы записать подряд (в следующую строку) одну и ту же опцию необходимо закрыть форму вместе с ListBox, после чего та же опция становится доступной для записи на лист. Такой вопрос: как записать подряд одну и ту же опцию ListBox не закрывая формы ? Т. е. есть ли свойство у ListBox, которое возвращало бы ListBox в первоначальное состояние, приблизительно так: Worksheets("Лист1").Cells(intI, 1).Value=UserForm1.ListBox1 UserForm1.List1.Свойство.Value = Значение (первоначальное состояние) С уважением. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 15
|
![]()
Использую событие Click
Private Sub ListBox1_Click() .... ..... ..... Worksheets("Лист1").Cells(intI, 1).Value=UserForm1.ListBox1 ..... ..... ..... End Sub При первом клике срабатывает, опция выделяется, клик по выделенной опции не срабатывает. Необходимо убрать выделение опции для записи на лист два раза подряд одной и той же опции. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Если я правильно понял, то задача состоит в том, чтобы кликом по значениям ListBox-а сформировать столбец значений на рабочем листе. Так?
Если так, то советую выполнять процедуру копирования выбранного в ListBox-е значения по событию Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 15
|
![]()
SAS888! Спасибо за подсказку.
ListBox1_MouseDown должно работать. Попробовал так: Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = vbLeftButton Then код End If End Sub Это всё, что удалось найти по ListBox1_MouseDown . Опция выделяется, но код не срабатывает. И так не срабатывает: Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = vbLeftButton Then Call код End If End Sub Код |
![]() |
![]() |
![]() |
#5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 15
|
![]()
EducatedFool ! Большое спасибо !
Быстро и профессионально. В действительности у меня задача такая - записать подряд опцию ListBox из двух столбцов в два столбца на лист Excel. В такой задаче для ListBox код зацикливается. Буду пробовать, если разберусь. В ответе представлено событие ListBox1_MouseUp вместо ListBox1_MouseDown. Последний раз редактировалось Mishel825; 25.10.2009 в 14:56. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 15
|
![]()
Один из вариантов повторной записи на лист Excel, выбранной ранее опции ListBox может быть такой:
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) ListBox1.ListIndex = -1 End Sub Private Sub ListBox1_Click() Код End Sub Т. е. используются две процедуры. Работает в принципе не плохо, но возможно есть код из одной процедуры ?! |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 15
|
![]()
Одна процедура получается при обработке события MouseUp, как сообщил EducatedFool.
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Код End Sub Можно копировать из одного столбца ListBox в один столбец на листе Excel и копировать из двух столбцов ListBox в два столбца на листе Excel. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как запустить несколько копий одной и той же программы? | murcot | Помощь студентам | 4 | 20.02.2009 11:28 |
Заменить повторяющиеся символы(которые повторяются два или три раза) в тексте пробелами. | Майки | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 12.01.2009 17:45 |
как из одного одной книги экспортировать данные на другой лист | mabru | Microsoft Office Excel | 11 | 07.01.2009 10:20 |