Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание перечня по совпадающим значениям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Создание перечня по совпадающим значениям
light26 Дата: Суббота, 29.09.2012, 09:42 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет.
Я сначала хотел через ВПР и ЕСЛИ, но потом понял, что без макроса не обойтись.
Подскажите код для решения следующей задачи:
есть 2 листа: "Старый" и "Новый". На листах есть совпадающие данные. Требуется сравнить значения столбца А на листе "Новый" со значениями столбца "А" на листе "Старый". Если нашлись совпадения, то строка, содержащаяся на листе "Новый" копируется на лист "Итог"
К сообщению приложен файл: 1082232.xls (21.0 Kb)


Я не волшебник. Я только учусь
 
Ответить
СообщениеВсем привет.
Я сначала хотел через ВПР и ЕСЛИ, но потом понял, что без макроса не обойтись.
Подскажите код для решения следующей задачи:
есть 2 листа: "Старый" и "Новый". На листах есть совпадающие данные. Требуется сравнить значения столбца А на листе "Новый" со значениями столбца "А" на листе "Старый". Если нашлись совпадения, то строка, содержащаяся на листе "Новый" копируется на лист "Итог"

Автор - light26
Дата добавления - 29.09.2012 в 09:42
KuklP Дата: Суббота, 29.09.2012, 10:09 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
[vba]
Code
Public Sub www()
     Dim i&, r, e&, r1
     r = Sheets("Старый").UsedRange.Columns(1)
     r1 = Sheets("Новый").UsedRange.Columns(1)
     On Error Resume Next
     For i = 1 To UBound(r1)
         e = 0: e = Application.Match(r1(i, 1), r, 0)
         If e > 0 Then Sheets("Новый").Rows(i).Copy Sheets("Итог").[a65536].End(xlUp).Offset(1): Err.Clear
     Next
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Суббота, 29.09.2012, 10:15
 
Ответить
Сообщение[vba]
Code
Public Sub www()
     Dim i&, r, e&, r1
     r = Sheets("Старый").UsedRange.Columns(1)
     r1 = Sheets("Новый").UsedRange.Columns(1)
     On Error Resume Next
     For i = 1 To UBound(r1)
         e = 0: e = Application.Match(r1(i, 1), r, 0)
         If e > 0 Then Sheets("Новый").Rows(i).Copy Sheets("Итог").[a65536].End(xlUp).Offset(1): Err.Clear
     Next
End Sub
[/vba]

Автор - KuklP
Дата добавления - 29.09.2012 в 10:09
light26 Дата: Суббота, 29.09.2012, 10:25 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Переделал под свой файл и из 8000 строк совпали только 37. )))
Спасибо огромное, Сергей


Я не волшебник. Я только учусь
 
Ответить
СообщениеПеределал под свой файл и из 8000 строк совпали только 37. )))
Спасибо огромное, Сергей

Автор - light26
Дата добавления - 29.09.2012 в 10:25
light26 Дата: Суббота, 29.09.2012, 10:27 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
KuklP, Только один вопрос: что такое [a65536] в коде?


Я не волшебник. Я только учусь
 
Ответить
СообщениеKuklP, Только один вопрос: что такое [a65536] в коде?

Автор - light26
Дата добавления - 29.09.2012 в 10:27
ikki Дата: Суббота, 29.09.2012, 10:30 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Quote (light26)
без макроса не обойтись.

гм? smile
с доп.столбцом, без макроса
К сообщению приложен файл: light26.xls (31.5 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Quote (light26)
без макроса не обойтись.

гм? smile
с доп.столбцом, без макроса

Автор - ikki
Дата добавления - 29.09.2012 в 10:30
KuklP Дата: Суббота, 29.09.2012, 11:09 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Quote (light26)
что такое [a65536] в коде?
Самая нижняя ячейка в столбце А:-)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Quote (light26)
что такое [a65536] в коде?
Самая нижняя ячейка в столбце А:-)

Автор - KuklP
Дата добавления - 29.09.2012 в 11:09
light26 Дата: Суббота, 29.09.2012, 11:10 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (KuklP)
Самая нижняя ячейка в столбце А

Дык это ж зависит от версии екселя smile


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (KuklP)
Самая нижняя ячейка в столбце А

Дык это ж зависит от версии екселя smile

Автор - light26
Дата добавления - 29.09.2012 в 11:10
KuklP Дата: Суббота, 29.09.2012, 11:12 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Конечно. Но в файле xls больше быть не может.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеКонечно. Но в файле xls больше быть не может.

Автор - KuklP
Дата добавления - 29.09.2012 в 11:12
light26 Дата: Суббота, 29.09.2012, 12:46 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (KuklP)
Но в файле xls больше быть не может.

Да, только у меня 2007. Просто в правилах сказано, что лучше прикладывать файл-пример в 2003


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (KuklP)
Но в файле xls больше быть не может.

Да, только у меня 2007. Просто в правилах сказано, что лучше прикладывать файл-пример в 2003

Автор - light26
Дата добавления - 29.09.2012 в 12:46
light26 Дата: Суббота, 29.09.2012, 12:48 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (ikki)
с доп.столбцом, без макроса

Спасибо, но с макросом-то поудобнее будет smile (без обид)


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (ikki)
с доп.столбцом, без макроса

Спасибо, но с макросом-то поудобнее будет smile (без обид)

Автор - light26
Дата добавления - 29.09.2012 в 12:48
KuklP Дата: Суббота, 29.09.2012, 12:52 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Ну напиши:
Sheets("Итог").cells(Sheets("Итог").rows.count,1).End(xlUp).Offset(1)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНу напиши:
Sheets("Итог").cells(Sheets("Итог").rows.count,1).End(xlUp).Offset(1)

Автор - KuklP
Дата добавления - 29.09.2012 в 12:52
light26 Дата: Суббота, 29.09.2012, 12:53 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
KuklP, и справка выдает Keyword Not Found на запрос по [a65536]. А без [a65536] никак не обойтись?


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Суббота, 29.09.2012, 12:53
 
Ответить
СообщениеKuklP, и справка выдает Keyword Not Found на запрос по [a65536]. А без [a65536] никак не обойтись?

Автор - light26
Дата добавления - 29.09.2012 в 12:53
ikki Дата: Суббота, 29.09.2012, 13:05 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
какие обиды? smile
сам такие задачи делаю макросом.
но это не отменяет тот факт, что и формулами они делаются довольно просто и быстро.
кроме того - одно дело тупо пользоваться макросом, даже не заглядывая в него, при неизменной структуре данных.
и совсем другое - при каждом чихе бегать по инету и ныть "поправьте мне макрос"
biggrin
возможно, кому-нибудь другому будет проще разобраться в "формульном" варианте.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 29.09.2012, 13:08
 
Ответить
Сообщениекакие обиды? smile
сам такие задачи делаю макросом.
но это не отменяет тот факт, что и формулами они делаются довольно просто и быстро.
кроме того - одно дело тупо пользоваться макросом, даже не заглядывая в него, при неизменной структуре данных.
и совсем другое - при каждом чихе бегать по инету и ныть "поправьте мне макрос"
biggrin
возможно, кому-нибудь другому будет проще разобраться в "формульном" варианте.

Автор - ikki
Дата добавления - 29.09.2012 в 13:05
light26 Дата: Суббота, 29.09.2012, 13:12 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (ikki)
и совсем другое - при каждом чихе бегать по инету и ныть "поправьте мне макрос"

Ну, надеюсь, это не в мой огород камушек wink
Я в каждом макросе стараюсь разобраться сам. Че не понятно - спрашиваю тут


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (ikki)
и совсем другое - при каждом чихе бегать по инету и ныть "поправьте мне макрос"

Ну, надеюсь, это не в мой огород камушек wink
Я в каждом макросе стараюсь разобраться сам. Че не понятно - спрашиваю тут

Автор - light26
Дата добавления - 29.09.2012 в 13:12
ikki Дата: Суббота, 29.09.2012, 13:14 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Quote (light26)
Ну, надеюсь, это не в мой огород камушек

нет.

но, Вадим, тот факт, что вы пытаетесь найти справку по [a65536] через F1 - настораживает smile
это не ключевое слово языка (VBA), это не объект, метод или свойство объектной модели приложения (Excel)
это просто один из способов обращения к конкретной ячейке листа из кода
[vba]
Code
[a65536]
Range("A65536")
Cells(65536,1)
[/vba]
и т.д.

вы же не будете нажимать F1 на 65536 в последней команде? smile
не думаю, что включить в справку отдельный раздел на каждую ячейку - хорошая идея.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 29.09.2012, 13:22
 
Ответить
Сообщение
Quote (light26)
Ну, надеюсь, это не в мой огород камушек

нет.

но, Вадим, тот факт, что вы пытаетесь найти справку по [a65536] через F1 - настораживает smile
это не ключевое слово языка (VBA), это не объект, метод или свойство объектной модели приложения (Excel)
это просто один из способов обращения к конкретной ячейке листа из кода
[vba]
Code
[a65536]
Range("A65536")
Cells(65536,1)
[/vba]
и т.д.

вы же не будете нажимать F1 на 65536 в последней команде? smile
не думаю, что включить в справку отдельный раздел на каждую ячейку - хорошая идея.

Автор - ikki
Дата добавления - 29.09.2012 в 13:14
light26 Дата: Суббота, 29.09.2012, 13:53 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (ikki)
не думаю, что включить в справку отдельный раздел на каждую ячейку - хорошая идея

я об этом и не говорил
Quote (ikki)
вы же не будете нажимать F1 на 65536 в последней команде?

не буду, а в
Quote (KuklP)
If e > 0 Then Sheets("Новый").Rows(i).Copy Sheets("Итог").[a65536].End(xlUp).Offset(1): Err.Clear

нажал. потому как очень плохо знаю синтаксис VBA.
Quote (ikki)
но, Вадим, тот факт, что вы пытаетесь найти справку по [a65536] через F1 - настораживает

не стоит беспокоиться


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (ikki)
не думаю, что включить в справку отдельный раздел на каждую ячейку - хорошая идея

я об этом и не говорил
Quote (ikki)
вы же не будете нажимать F1 на 65536 в последней команде?

не буду, а в
Quote (KuklP)
If e > 0 Then Sheets("Новый").Rows(i).Copy Sheets("Итог").[a65536].End(xlUp).Offset(1): Err.Clear

нажал. потому как очень плохо знаю синтаксис VBA.
Quote (ikki)
но, Вадим, тот факт, что вы пытаетесь найти справку по [a65536] через F1 - настораживает

не стоит беспокоиться

Автор - light26
Дата добавления - 29.09.2012 в 13:53
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!