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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос анализирует значения из двух листов и выводит в трети - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос анализирует значения из двух листов и выводит в трети
ЕвгенийИ Дата: Воскресенье, 16.04.2023, 21:09 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Коллеги помогите пожалуйста сделать макрос:
Суть: Есть два листа и в нем есть данные по типу BOX_НОМЕР В одном и том же листе есть такие же значения если нет в во втором листе выводится сравнение на третий лист. нужно сделать чтоб повторяющиеся значения не выводились в лист 3 а выводились именно тех которых не хватает в листе 2
 
Ответить
СообщениеКоллеги помогите пожалуйста сделать макрос:
Суть: Есть два листа и в нем есть данные по типу BOX_НОМЕР В одном и том же листе есть такие же значения если нет в во втором листе выводится сравнение на третий лист. нужно сделать чтоб повторяющиеся значения не выводились в лист 3 а выводились именно тех которых не хватает в листе 2

Автор - ЕвгенийИ
Дата добавления - 16.04.2023 в 21:09
VBAdevelope Дата: Понедельник, 17.04.2023, 15:38 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 4 ±
Замечаний: 20% ±

2013
Данные в конкретном столбце или вообще по всему листу в случайных ячейках? Копировать что, всю строку или только значение данной ячейки?
Ну тут либо перебор, либо поиск по листу:
[vba]
Код
Set rSearchRange = oWB.Sheets("Лист1").UsedRange
For Each rCell In rSearchRange
If Left(rCell.Value, 9) = "BOX_НОМЕР" Then
Set rFoundRange = oWB.Worksheets(2).Cells.Find(What:=rCell.Value, LookIn:=xlValues, LookAt:=xlWhole)
If rFoundRange Is Nothing Then
'При условии, что в стобце А не пусто
iLastRow = oWB.Sheets("Лист3").Cells(Rows.Count, 1).End(xlUp).Row + 1
rCell.EntireRow.Copy Destination:=oWB.Sheets("Лист3").Cells(iLastRow, 1)
End if
End If
Next rCell
[/vba]
Либо первые две строки заменить поиск по листу
Вроде
[vba]
Код
Set rSearchRange = oWB.Sheets("Лист1").Cells.Find(What:="1212", LookIn:=xlValues, LookAt:=xlWhole)
Do While Not rSearchRange Is Nothing
Set rFoundRange = oWB.Worksheets(2).Cells.Find(What:=rSearchRange.Value, LookIn:=xlValues, LookAt:=xlWhole)
        If rFoundRange Is Nothing Then
            iLastRow = oWB.Sheets("Лист3").Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            rSearchRange.EntireRow.Copy Destination:=oWB.Sheets("Лист3").Cells(iLastRow, 1)
        End If
        Set rSearchRange = oWB.Sheets("Лист1").Cells.Find(What:="1212", After:=rSearchRange.Cells, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)
Loop
[/vba]
Только ограничитель нужен.


Макросы VBA Excel, Word на заказ.
Сказать спасибо на Юмани: 410015093172871
 
Ответить
СообщениеДанные в конкретном столбце или вообще по всему листу в случайных ячейках? Копировать что, всю строку или только значение данной ячейки?
Ну тут либо перебор, либо поиск по листу:
[vba]
Код
Set rSearchRange = oWB.Sheets("Лист1").UsedRange
For Each rCell In rSearchRange
If Left(rCell.Value, 9) = "BOX_НОМЕР" Then
Set rFoundRange = oWB.Worksheets(2).Cells.Find(What:=rCell.Value, LookIn:=xlValues, LookAt:=xlWhole)
If rFoundRange Is Nothing Then
'При условии, что в стобце А не пусто
iLastRow = oWB.Sheets("Лист3").Cells(Rows.Count, 1).End(xlUp).Row + 1
rCell.EntireRow.Copy Destination:=oWB.Sheets("Лист3").Cells(iLastRow, 1)
End if
End If
Next rCell
[/vba]
Либо первые две строки заменить поиск по листу
Вроде
[vba]
Код
Set rSearchRange = oWB.Sheets("Лист1").Cells.Find(What:="1212", LookIn:=xlValues, LookAt:=xlWhole)
Do While Not rSearchRange Is Nothing
Set rFoundRange = oWB.Worksheets(2).Cells.Find(What:=rSearchRange.Value, LookIn:=xlValues, LookAt:=xlWhole)
        If rFoundRange Is Nothing Then
            iLastRow = oWB.Sheets("Лист3").Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            rSearchRange.EntireRow.Copy Destination:=oWB.Sheets("Лист3").Cells(iLastRow, 1)
        End If
        Set rSearchRange = oWB.Sheets("Лист1").Cells.Find(What:="1212", After:=rSearchRange.Cells, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)
Loop
[/vba]
Только ограничитель нужен.

Автор - VBAdevelope
Дата добавления - 17.04.2023 в 15:38
  • Страница 1 из 1
  • 1
Поиск:

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