Страница: 1 |
Страница: 1 |
Вопрос: Помогите решить проблемму с listbox на форме
Добавлено: 17.06.05 15:07
Автор вопроса:
vova
Проблема выглядит так открываеться файл Excel вызываеться макрос открываеться форма
с listbox у которго свойство MatchEntry = fmMatchEntryComplete (свойство благодаря которому
позиционируеться положение текущей строки в listbox по набираемым с клавиатуры символам)
и оно то работает то нет?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа: mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #1
Добавлено: 17.06.05 17:41
Тут тебе надо бы выложить этот файл, чтобы я сам мог убедиться, что оно то работает, то нет. Или если что, присылай файлик мне, я посмотрю:
mc-black[собака]yandex[точка]ru
Номер ответа: 2
Автор ответа: vova
Вопросов: 1
Ответов: 3
Профиль | | #2
Добавлено: 21.06.05 08:15
Модулль1
Sub Userform1Open()
ThisWorkbook.Sheets().Item(1).Unprotect
KonStr = ThisWorkbook.Sheets().Item(1).Cells(1, 1).SpecialCells(11).Row
ThisWorkbook.Sheets().Item(1).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
UserForm1.ListPrice.RowSource = "a2:g" + Trim(str(KonStr + 1))
UserForm1.Show
End Sub
при этом свойства лист бокса
UserForm1.ListPrice.MatchEntry = fmMatchEntryComplete
UserForm1.ListPrice.TextColumn = 1
в ячейках колонка А текстовая информация
особенность такая работает сойство MatchEntry и если я переключаюсь на другую задачу например проводник потом возвращаюсь к Ехсел и сойство MatchEntry пепестает нормально работать (особеность когда перестает работать заметил по цифорному набору работает а по буквам нет) т.е. набираю "папа" переходит на первую строку которая на начинаеться на "папа" набираю "5" переходит на строку которая начинаеться на "5"?
еще такая особенность расположил кнопку которая переключает фокусы
UserForm1.ListZakaz.SetFocus
UserForm1.ListPrice.SetFocus
и очень часто воссанавливает работу сойства MatchEntry
Номер ответа: 3
Автор ответа: mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #3
Добавлено: 21.06.05 15:10
Что такое SpecialCells(11) ?
"a2:g" + Trim(str(KonStr + 1)) - Здесь лучше использовать "&" вместо "+", т.к. у тебя идёт конкатенация строк. Глюк твой объяснить пока не могу, только вот SetFocus для списка если возникает не вовремя, то оно будет создавать проблемы. Насчёт значения MatchEntry, думаю его и один раз установить вполне достаточно.
Номер ответа: 4
Автор ответа: vova
Вопросов: 1
Ответов: 3
Профиль | | #4
Добавлено: 21.06.05 15:33
SpecialCells(11) это последняя самая правая и самая нижняя ячейка садержащая информацию (к сожалению иногда весь диапазон несмотря на то что большая нижняя частьобсолютно пустые ячейки) SpecialCells(11) я использую чтобы работать только с диапазоном ячеек содержащих информацию
лучше использовать "&" вместо "+",
т.к. у тебя идёт конкатенация строк. В книге VBA специальный справочник написано что "+" тоже можно исп. в качестве оператора конкатенации и ничего по поводу проблем с этим
Скажите у вас получилось повторить этот глюк?
Самое интересное что по цифрам свойство MatchEntry продолжает работать.
Номер ответа: 5
Автор ответа: mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 21.06.05 16:30
В общем, симитировал я ваш случай в Excel, работает.. и глючит местами... самое, что не понятно, как, по какому принципу глючит - не видно же, что ввожу.. Совсем другое дело - ComboBox - всё ищет как надо - рекомендую тебе его у себя заменить на него.. Работало всегда, никаких свойств специально задавать не надо..
Номер ответа: 6
Автор ответа: vova
Вопросов: 1
Ответов: 3
Профиль | | #6
Добавлено: 22.06.05 09:04
ComboBox не могу к сожалению использовать нужно чтобы было видно много строк с колонками обязятельно.
И чтобы моя программа работала на разнх ОС на разных версиях Офиса и подойти к этим компам я не могу они в других городах