|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.01.2012, 13:53 | #1 |
Пользователь
Регистрация: 08.01.2012
Сообщений: 14
|
процедура с параметром вызывает функцию
HelP! excel нужно сделать макрос на VBA. с языком знакомлюсь 2 дня. Есть срочная задача:
Дан а таблица с записями - лист1 (один из столбцов -"код" графический объект "надпись"=значению из поля/столбца "код" - лист2 Нужно по клику на надписи вывести окно в котором отобразить данные с листа1 (строки таблицы) выбранные по условию "код". алгоритм построила: I процедуре передается параметр = значению" надпись"/"код" II запускается функция перебор строк таблицы III запускается окно (или textbox или msgbox) IV в окно передается динамический список/таблица V по клику ОК окно закрывается II.I функции передается параметр "надпись" по параметру перебираются строки с листа1 и при условии "надпись"="код" добавляются в динамический список/таблица как это сделать!!! pls! |
08.01.2012, 14:03 | #2 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
Без примера файла (с Вашими наработками) никто ничего Вам не скажет.
Архивируйте файлик и прикрепите.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
08.01.2012, 14:06 | #3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Добавляйте строки в массив (создайте заранее пустой на максимальный размер, или можно увеличивать одномерный с помощью Redim Preserve, если будете выбирать одно значение строки).
В конце данные массива выгружаете куда угодно (можно отобрать только заполненную часть). Выводить думаю лучше в листбокс на форму. Впрочем в листбокс можно сразу данные и отбирать, без промежуточного массива.
webmoney: E265281470651 Z422237915069 R418926282008
|
08.01.2012, 14:28 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Hugo121, очень понравился ваш ответ
А вот работаю с Excel и VBA несколько лет, - и то с трудом понимаю, как воплотить в коде всё то, что вы написали. Не уверен, что ТС сможет на основании вышесказанного что-то реализовать. subluna, прочитал ваш пост дважды. НИЧЕГО не понял. Вы бы всё в своём файле Excel описали - глядишь, уже было бы готовое решение. И самое главное - объясните, для чего всё это нужно. Вдруг есть какой-то намного более простой вариант добиться желаемого... Главное: зачем выводить записи именно в окно? Это сложно в плане кода. Почему бы не вывести отфильтрованные записи на другой лист? |
08.01.2012, 14:57 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
EducatedFool - да ну? Неужели так сложно выразился?
Поясню (для ТС) - 1. раз таблица дана, значит известно количество её строк 2. можно объявить массив нужного размера 3. перебор строк - нужное отбираем в этот массив (в переменной считаем количество отобранных строк, её же используем для заполнения массива) 4. любым способом извлекаем из массива отобранное, используя значение индексной переменной Но проще конечно сразу копировать отобранные строки на другой лист. А ещё проще поставить на лист фильтр
webmoney: E265281470651 Z422237915069 R418926282008
|
08.01.2012, 16:39 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Сделал пример для синих кнопочек:
http://excelvba.ru/XL_Files/Sample__...__18-37-20.zip С текстбоксом (поле ввода) делается аналогично: http://excelvba.ru/XL_Files/Sample__...__18-48-37.zip
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 08.01.2012 в 16:49. |
08.01.2012, 16:52 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Игорь, пример работает криво, если на первом листе отфильтровать например ALEKSOID'а
Надо было на фильтре код и строить, или на ColumnDifferences.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 08.01.2012 в 16:55. |
08.01.2012, 17:00 | #8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
А если поставить защиту на лист с результатом - ещё кривее будет работать. И совсем криво, если удалить исходную таблицу Это, так сказать, демо-версия. Если в целом устроит - можно будет думать о доработке. |
|
09.01.2012, 03:11 | #9 |
Пользователь
Регистрация: 08.01.2012
Сообщений: 14
|
спасибо всем за живое участие!
у меня вот что вышло: Код:
а еще не могу найти чем получитьтекстовое значение объекта "Надпись"(ёксельный объект который синенькая кнопочка)... |
09.01.2012, 03:18 | #10 |
Пользователь
Регистрация: 08.01.2012
Сообщений: 14
|
вот файл вложила
там вторая процедура есть вот в ней не могу передать из активного листа (в этом примере "Отдел-ИТ") значение надписи процедуре ( и надо наверное в listBox'е отображать результат Последний раз редактировалось subluna; 09.01.2012 в 05:35. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процедура с параметром | MD1 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 29.11.2011 18:25 |
Процедура с параметром и без параметра | admin22 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 27.09.2011 15:44 |
Процедура с изменяемым параметром | Utkin | Общие вопросы Delphi | 11 | 30.11.2010 14:41 |
Процедура с параметром динамическим массивом. | VintProg | Общие вопросы Delphi | 12 | 11.06.2010 13:12 |
Ajax - вызывает ошибку в IE | kalexi | JavaScript, Ajax | 2 | 04.05.2010 17:03 |