Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 670
от 11.12.2007, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 276, Экспертов: 38
В номере:Вопросов: 3, Ответов: 5


Вопрос № 112568: Уважаемые эксперты! Возник вопрос по VBA. У меня имеются два листа открытой рабочей книги. На первом листе список персонала предприятия и цеха, а на втором количество проходов каждого сотрудника пример: лист1: |1столбец |2 столбец|..........
Вопрос № 112636: добрый день. появился странный эффект : excel, при выполнения макроса, заявляет, что не видит функции format, trim, left ...(не находит проект или библиотеку) . полная переустановка office 2003 не помогла. прошу помочь, решить эту головоломку. за...
Вопрос № 112645: 1 Как правильно в Аксесе сделать обновление подчинённой формы? 2 То же самое для списков, в списках и формах исп. запроси с выражениями вторую неделю долблюсь то обновляются то нет...

Вопрос № 112.568
Уважаемые эксперты!
Возник вопрос по VBA. У меня имеются два листа открытой рабочей книги.
На первом листе список персонала предприятия и цеха, а на втором количество проходов каждого сотрудника
пример: лист1: |1столбец |2 столбец|........
Эл.цех Вася Петров
Химцех Аня Филатова
. .
. .
На 2-м листе количество их проходов лист2:|1 столбец|2cтолбец |Проход|....
Пусто Вася Петров вход
Пусто Вася Петров выход
. Аня вход
. Аня вход
Необходимо отметить в 1столбце 2-го листа(где пустые ячейки) цеха на всех лиц.Проблема заключается в очень больших списках в 1-м листе: порядка 1500 записей, а во 2-м листе -около 4000. Я сделал два вложенных цикла по выборке записей лица из 1-го листа и поиском его проходов во 2-м листе- в случае его обнаружения ему дописывается его цех, но из-за больших списков у меня зависает макрос выборки в Excel. Подскажите, пожалуйста, можно ли воспользоваться какими-либо ссылками в 1 -м листа, чтобы пребирая в цикле список 2-го листа делать пометки для найденых лиц из 1 листа.
Я использовал поиск и сравнение лиц в 2-х листах по ФИО.
Прошу учесть что я только начал изучать VBA.

С уважением и благодарностью.

Приложение:

Отправлен: 06.12.2007, 10:16
Вопрос задал: Соколов Вадим Владимирович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Денисов Сергей Иванович
Здравствуйте, Соколов Вадим Владимирович!
1. В Вашем случае выелять листы в цикле (Sheets("Лист1").Select) не нужно.
2. К ячейкам можно обращаться так: Sheets("Лист1").Cells(I + 1, 1).Value
3. Можно не использовать промежуточные переменные ORG, FIO, POISK
4. Опреелить диапазон листов можно другим способом через Worksheets("Лист1").UsedRange.Rows.Count
Я думаю будет работать намного быстрее ...
Не совсем понял ля чего нужет переход на "pout"
В итоге цикл можно записать так:

Приложение:

Ответ отправил: Денисов Сергей Иванович (статус: 1-ый класс)
Ответ отправлен: 06.12.2007, 11:22
Оценка за ответ: 5

Отвечает: HookEst
Здравствуйте, Соколов Вадим Владимирович!
можно сделать все гораздо проще.
Если Вы во все ячейки цеха второго листа поставите формулу:
=ИНДЕКС(Лист1!C;ПОИСКПОЗ(Лист2!RC[1];Лист1!C[1];0))
то названия цехов будут автоматически находится по фамилии и отображатся.
если все ячейки менять не хочется, а только пустые, то это сделает нехитрый макрос:

Sub t()
Worksheets("Лист2").Columns(1).SpecialCells(xlCellTypeBlanks).FormulaR1C1Local = "=ИНДЕКС(Лист1!C;ПОИСКПОЗ(Лист2!RC[1];Лист1!C[1];0))"
End Sub

вот и все. Только теперь, если Васю Петрова переведут в другой цех, на листе Проходов название его цеха тоже поменяется.
Если все же нужны константные значения, то Ctrl+C и Специальная вставка... все сделают.
Если бы на первом листе фамилия у вас стояла бы левее чем цех, можно использовать формулу ВПР.
Успехов.
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 06.12.2007, 12:33
Оценка за ответ: 5

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Соколов Вадим Владимирович!
http://ifolder.ru/3765138 по этой ссылке Вы найдете надстройку Excel которая создавалась для решения подобной задачи.
код доступен для изучения

Евгений.
P.S. такие задачи лучше решать в базах данных:
http://ifolder.ru/3375185 ссылка для ознакомления.
Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 06.12.2007, 19:52
Оценка за ответ: 5


Вопрос № 112.636
добрый день.
появился странный эффект : excel, при выполнения макроса, заявляет, что не видит функции format, trim, left ...(не находит проект или библиотеку) . полная переустановка office 2003 не помогла. прошу помочь, решить эту головоломку. заранее благодарен.

os windows xp sp2, office proffesional 2003. все лицензионное.
Отправлен: 06.12.2007, 15:55
Вопрос задал: Lanbob (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Файфель Борис Леонидович
Здравствуйте, Lanbob!
Это очень похоже на то, что у проекта есть неразрешенная ссылка(Reference). Отключи и все будет ОК!
Ответ отправил: Файфель Борис Леонидович (статус: 1-ый класс)
Ответ отправлен: 06.12.2007, 21:55


Вопрос № 112.645
1 Как правильно в Аксесе сделать обновление подчинённой формы?
2 То же самое для списков, в списках и формах исп. запроси с выражениями вторую неделю долблюсь то обновляются то нет

Приложение:

Отправлен: 06.12.2007, 16:52
Вопрос задал: Kyrikinkvazimoda (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Kyrikinkvazimoda!

Для получения ответа обратитесь к странице:
http://rusfaq.ru/info/question/111673
Вопрос там другой, но ответ на него я думаю Вам подойдет
возникнут еще вопросы пишите

Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 06.12.2007, 20:46


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.65 от 04.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное