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

Вход

Регистрация

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

 

= Мир MS Excel/Счетчик удаленных ячеек по RemoveDuplicates - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Счетчик удаленных ячеек по RemoveDuplicates (Макросы/Sub)
Счетчик удаленных ячеек по RemoveDuplicates
rever27 Дата: Четверг, 21.05.2015, 14:20 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Нужно посчитать количество удаленных дубликатов из указанного диапазона rng1
Т.е. если по всем 4 проверкам у меня найдено и удалено 10 дубликатов, то и в сообщении должно быть число 10.
Пустые ячейки, удаленные второй частью макроса не интересуют.

[vba]
Код

Sub b_RemoveDuplicates()
          
Dim r As Long, rng As Range, rng1 As Range

     Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)

     rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo          'Q, R, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo          'R, U, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo      'R, U, Y, AC, AG
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo  'R, U, Y, AA, AB, AJ
      
     For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
         If Application.CountA(Rows(r)) = 0 Then
             If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
             End If
         Next r
     If Not rng Is Nothing Then rng.Delete: _

End Sub
[/vba]
 
Ответить
СообщениеНужно посчитать количество удаленных дубликатов из указанного диапазона rng1
Т.е. если по всем 4 проверкам у меня найдено и удалено 10 дубликатов, то и в сообщении должно быть число 10.
Пустые ячейки, удаленные второй частью макроса не интересуют.

[vba]
Код

Sub b_RemoveDuplicates()
          
Dim r As Long, rng As Range, rng1 As Range

     Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)

     rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo          'Q, R, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo          'R, U, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo      'R, U, Y, AC, AG
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo  'R, U, Y, AA, AB, AJ
      
     For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
         If Application.CountA(Rows(r)) = 0 Then
             If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
             End If
         Next r
     If Not rng Is Nothing Then rng.Delete: _

End Sub
[/vba]

Автор - rever27
Дата добавления - 21.05.2015 в 14:20
_Boroda_ Дата: Четверг, 21.05.2015, 17:43 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так пойдет?
[vba]
Код
Sub b_RemoveDuplicates()
          
Dim r As Long, rng As Range, rng1 As Range, rng2 As Range

     Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)
     n1 = rng1.Rows.Count

     rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo          'Q, R, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo          'R, U, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo      'R, U, Y, AC, AG
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo  'R, U, Y, AA, AB, AJ
      
     Set rng2 = Range(ActiveCell, Selection.End(xlDown).EntireRow)
     n2 = rng2.Rows.Count
     MsgBox "Удалено " & n1 - n2 & " строк"
      
     For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
         If Application.CountA(Rows(r)) = 0 Then
             If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
             End If
         Next r
     If Not rng Is Nothing Then rng.Delete: _

End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак пойдет?
[vba]
Код
Sub b_RemoveDuplicates()
          
Dim r As Long, rng As Range, rng1 As Range, rng2 As Range

     Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)
     n1 = rng1.Rows.Count

     rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo          'Q, R, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo          'R, U, X, Y
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo      'R, U, Y, AC, AG
     rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo  'R, U, Y, AA, AB, AJ
      
     Set rng2 = Range(ActiveCell, Selection.End(xlDown).EntireRow)
     n2 = rng2.Rows.Count
     MsgBox "Удалено " & n1 - n2 & " строк"
      
     For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
         If Application.CountA(Rows(r)) = 0 Then
             If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
             End If
         Next r
     If Not rng Is Nothing Then rng.Delete: _

End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 21.05.2015 в 17:43
rever27 Дата: Четверг, 21.05.2015, 17:53 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Да, отлично. Сам бы не допер )))
Спасибо большое
 
Ответить
СообщениеДа, отлично. Сам бы не допер )))
Спасибо большое

Автор - rever27
Дата добавления - 21.05.2015 в 17:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Счетчик удаленных ячеек по RemoveDuplicates (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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