|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 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 | |
|