|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.11.2009, 14:11 | #1 |
Регистрация: 16.11.2009
Сообщений: 5
|
Помогите с VBA!
Здравствуйте. Мне нужна помощь с копированием данных из одной книги в другую по заданному значению в одной из ячейки. Есть две книги q.xls, w.xls. В первой книге я ввожу в одну ячейку фамилию Иванова, во второй должен при помощи макроса осуществиться поиск: найти все строки с указанной фамилией и скопировать найденные строки в первую книгу. То есть: 1 444 Иванова, 4 77 Иванова.
Есть капелька кода: Cells.Find(What:=Range("D2"), After:=ActiveCell, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate Осуществляет поиск только по книге. Незнаю как тут написать поиск в другой книге.. Кто может помогите пожалуйста раньше у меня было так: в ячейке первой книги я ввожу фамилию, в макросе она уже вбита. и в макросе я указываю откуда надо скопировать. Но сейчас нужно переделать чтоб макрос сам искал ету фамилию и сам копировал найденную строку из второй книги в первую. Вот старый код Select Case Range("C5,S5").Value Case Is = "Иванова" Range("Y12").Select Windows("q.xls").Activate ActiveCell.FormulaR1C1 = "='[w.xls]Лист1'!R9C8" Selection.Copy ActiveSheet.Paste ActiveSheet.Paste Application.CutCopyMode = True Range("C8:S8").Select Windows("q.xls").Activate ActiveCell.FormulaR1C1 = "='[w.xls]Лист1'!R9C3" Selection.Copy ActiveSheet.Paste ActiveSheet.Paste Application.CutCopyMode = True Range("S8:C8").MergeCells = True Последний раз редактировалось liona22; 16.11.2009 в 14:55. |
16.11.2009, 15:17 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Начнём с того, что макросы в данном случае использовать необязательно - вполне возможно, что хватит и формул.
Далее: Было бы намного удобнее писать Ваш макрос, глядя на книгу Excel, а не на изображение этой книги... Как вставлять строки? Начиная с какой строки? Вместе с форматированием? Почему бы в первой книге, вместо ввода фамилий, не выбирать их из выпадающего списка? Зачем вообще использовать 2 книги? Почему не поместить данные на разные листы одной книги? |
16.11.2009, 16:17 | #3 |
Регистрация: 16.11.2009
Сообщений: 5
|
две книги использовать в данному случае нужно - это устои предприятия. я только лишь вывожу данные
о вставке строк:без форматирования. вставлят надо значения ячеек из второй книги в соответствующе в первой. то есть если во второй ячейки "номер, количество, оклад", то и вставить ети значения надо соответствено в первую "номер, количество, оклад", которые расположены в таком же порядке. и все таки хочется сделат макросами.. |
16.11.2009, 16:42 | #4 |
Регистрация: 16.11.2009
Сообщений: 5
|
Cells.Find(What:=Range("D4"), After:=ActiveCell, SearchOrder:=xlByRows, SearchDirection:=xlNext, SearchFormat:=False).Activate
Этот код ищет значение ячейки Д4 по листу одной книги. а как сделать чтоб искал во второй? и найденные значения скопировал в первую.. |
16.11.2009, 17:40 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Скачайте оба файла:
Переименуйте эти 2 файла в q.xls и w.xls Введите в ячейку d2 фамилию, и нажмите кнопку Найти. Вот весь код: Код:
|
16.11.2009, 18:09 | #6 |
Регистрация: 16.11.2009
Сообщений: 5
|
Спасибо! но я не совсем разобралась в коде, а именно - где указывается в какие ячейки в файл q.xls мы вставляем значения из w.xls? (sh.[c1], sh.Range("c" & Rows.Count) - а ето я так понимаю столбец С, то есть столбец где ищется заданный критерий. Так?
|
16.11.2009, 18:12 | #7 |
Регистрация: 16.11.2009
Сообщений: 5
|
и еще один небольшой нюанс. Копирование должно осуществляться при закрытой книге
|
17.11.2009, 06:45 | #8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с кодом VBA | Алексей11111 | Microsoft Office Excel | 1 | 19.10.2009 11:36 |
ПОМОГИТЕ С vba!!!!) | Маришшка | Microsoft Office Excel | 0 | 13.05.2009 17:30 |
помогите с VBA | Serzov | Microsoft Office Excel | 1 | 11.06.2008 16:26 |
Помогите с VBA | ereality | Помощь студентам | 5 | 19.05.2008 18:11 |
Помогите с VBA | windzor | Microsoft Office Word | 5 | 20.04.2008 19:59 |