![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Excel 2010 фильтр 1 и 2 листа скопировать на новый лист |
|
2010 - [решено] Excel 2010 фильтр 1 и 2 листа скопировать на новый лист
|
Новый участник Сообщения: 19 |
Всем привет! Не знаю как решить во такую задачку - на 1 и на 2 листе Информация из трех столбцов:
в первом она повторяется числовая в принципе с ней ничего не нужно делать только выносить на новую страницу со всей строкой во втором уникальна числовая (но может совпадать в листе1 с лист2) можно считать что это ID в третьем ФИО Нужно отфильтровать и вывести ТОЛЬКО УНИКАЛЬНЫЕ значения только со второго листа, уникальные значения первого листа не нужны, на новую страницу фильтр нужно вести по двум параметрам ФИО и ID Как это вообще можно сделать - я знаю но способ очень кривой, занимает много времени и повторять его нужно для 23 файлов - не хочется) в каждом от 2 тыс. записей Подскажите как можно это реализовать ? Заранее благодарен. Таблица выглядит примерно так - состоит из 2-8 тысяч записей, нужно вынести "появившиеся" во втором листе записи, которых НЕТ в листе 1 |
|
Отправлено: 13:55, 02-11-2012 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать okshef, он выдает ошибку
|
Отправлено: 14:09, 09-11-2012 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать The Off, поправил код. Точно, у вас же 2 столбца.
|
------- Последний раз редактировалось okshef, 09-11-2012 в 16:22. Отправлено: 16:13, 09-11-2012 | #22 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать okshef, все равно ругается (
|
Отправлено: 11:59, 15-11-2012 | #23 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать Вставьте модуль с таким кодом:
Sub findnew() 10 On Error GoTo LogError 20 For Each c In Worksheets(2).Columns(2).Cells 30 If Worksheets(1).[b:b].Find(c.Value) Is Nothing Then 40 Worksheets(2).Range("a" & c.Row).Copy Worksheets(3).Range("a" & Worksheets(3).Cells.Rows.Count).End(xlUp)(2) 50 Worksheets(2).Range("c" & c.Row).Copy Worksheets(3).Range("b" & Worksheets(3).Cells.Rows.Count).End(xlUp)(2) 60 End If 70 If IsEmpty(c) Then Exit For 80 Next 90 Worksheets(3).UsedRange.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes 100 Exit Sub LogError: 110 ErrorMsg = Now & " " & _ "Error " & Err.Number & " (" & Err.Description & _ ") in procedure findnew строка " & Erl 120 MsgBox ErrorMsg 130 With ThisWorkbook 140 Shell "cmd /c echo " & ErrorMsg & ">>""" & .Path & "\" & .Name & ".log""" 150 End With 160 Resume Next End Sub |
------- Последний раз редактировалось okshef, 15-11-2012 в 20:47. Отправлено: 16:42, 15-11-2012 | #24 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать код чуть переделал (появилась необходимость добавить еще 1 столбец)
Sub findnew() On Error GoTo LogError For Each c In Worksheets(2).Columns(2).Cells If Worksheets(1).[b:b].Find(c.Value) Is Nothing Then Worksheets(2).Range("a" & c.Row).Copy Worksheets(3).Range("a" & Worksheets(3).Cells.Rows.Count).End(xlUp)(2) Worksheets(2).Range("c" & c.Row).Copy Worksheets(3).Range("b" & Worksheets(3).Cells.Rows.Count).End(xlUp)(2) Worksheets(2).Range("d" & c.Row).Copy Worksheets(3).Range("c" & Worksheets(3).Cells.Rows.Count).End(xlUp)(2) End If If IsEmpty(c) Then Exit For Next Worksheets(3).UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes Exit Sub LogError: ErrorMsg = Now & " " & _ "Error " & Err.Number & " (" & Err.Description & _ ") in procedure findnew строка " & Erl MsgBox ErrorMsg With ThisWorkbook Shell "cmd /c echo " & ErrorMsg & ">>""" & .Path & "\" & .Name & ".log""" End With Resume Next выдает вот такую ошибку файл с логом - пустой |
Последний раз редактировалось okshef, 16-11-2012 в 14:13. Отправлено: 12:19, 16-11-2012 | #25 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать У меня все выполняется без ошибок
Другие файлы не открыты? Excel точно 2010? |
------- Отправлено: 14:58, 16-11-2012 | #26 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать okshef, а возможно ли подтягивать точно так же данные из разных файлов? например не из лист1-лист2 а из файлов filename1 и filename2
|
Отправлено: 16:41, 01-08-2013 | #27 |
Модератор Сообщения: 16855
|
Профиль | Сайт | Отправить PM | Цитировать The Off, я сам не делал, попробуйте. Введите переменные, как вы их назвали
Цитата The Off:
А дальше "привяжите" к этому файлу рабочий лист, например, строчку Worksheets(2).Range("a" & c.Row).Copy Worksheets(3).Range("a" & Worksheets(3).Cells.Rows.Count).End(xlUp)(2) filename1.Worksheets(2).Range("a" & c.Row).Copy filename2.Worksheets(3).Range("a" & filename2.Worksheets(3).Cells.Rows.Count).End(xlUp)(2) Ох и тяжко вспоминать задачки почти годовалой давности ![]() |
|
------- Отправлено: 02:07, 02-08-2013 | #28 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Сделал вот так, он мне скопировал все как нужно, во время "написания" заметил фишку в том, что в одних excel таблицах столбцы обозначаются как 123456 а в других abcdef - это слияет на код ? например If filename1.Worksheets(1).[c:c].Find(c.Value) Is Nothing Then или же If filename1.Worksheets(1).[3:3].Find(c.Value) Is Nothing Then
Sub findnew() Set filename1 = GetObject("D:\newpens\at06.xls ") Set filename2 = GetObject("D:\newpens\at07.xls") For Each c In filename2.Worksheets(1).Columns(3).Cells If filename1.Worksheets(1).[c:c].Find(c.Value) Is Nothing Then filename2.Worksheets(1).Range("a" & c.Row).Copy Worksheets(1).Range("a" & Worksheets(1).Cells.Rows.Count).End(xlUp)(2) filename2.Worksheets(1).Range("b" & c.Row).Copy Worksheets(1).Range("b" & Worksheets(1).Cells.Rows.Count).End(xlUp)(2) filename2.Worksheets(1).Range("d" & c.Row).Copy Worksheets(1).Range("c" & Worksheets(1).Cells.Rows.Count).End(xlUp)(2) End If If IsEmpty(3) Then Exit For Next ' Worksheets(1).UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes Exit Sub Resume Next End Sub |
Последний раз редактировалось The Off, 02-08-2013 в 12:52. Отправлено: 09:58, 02-08-2013 | #29 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Еще вопрос по инету шарю - пока найти не могу, как сделать так, что бы нужно было "указывать" файл 1 и файл 2 как в "проводнике"
|
Отправлено: 13:39, 02-08-2013 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2007 - [решено] MS Excel | Как развернуть лист на весь экран | ssoll | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 17-08-2012 18:01 | |
2010 - [решено] Excel - копирование выбранных строк на другой лист | linkwy | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 16-08-2012 21:14 | |
VBA - [решено] Разбор листа Excel по строкам в отдельные файлы | Debugger | Программирование и базы данных | 3 | 14-03-2012 15:46 | |
2010 - Excel 2010 - фильтр по раскрывающемуся списку | flower | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 01-03-2012 14:44 | |
Разное - Не снимается защита листа в Excel | doznet | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 17-12-2010 23:37 |
|