Удалить одинаковые строки VBA

Узнай цену своей работы

Формулировка задачи:

Подскажите, пожалуйста, как написать такой кусок на VBA
Если в один столбец в Экселе расположены показатели разделенные решелкой (вот так)
100
200
300
##
100
200
300
##
##
100
200
300
и если встречается 2 решетки подряд то эту строку надо удалить. Как написать это в коде?
Спасибо...

Решение задачи: «Удалить одинаковые строки VBA»

textual
Листинг программы
<font color="blue">Sub</font> NomenSort()
  <font color="blue">Const</font> Divizor <font color="blue">As</font> <font color="blue">String</font> = <font color="teal">"###"</font>
  Application.ScreenUpdating = False
  <font color="blue">Dim</font> Sh <font color="blue">As</font> Worksheet
  <font color="blue">Set</font> Sh = ActiveSheet
  <font color="blue">For</font> Index& = Sh.UsedRange.Rows.Count <font color="blue">To</font> <font color="darkblue"><b>2</b></font> <font color="blue">Step</font> -<font color="darkblue"><b>1</b></font>
    <font color="blue">If</font> Sh.Cells(Index, <font color="darkblue"><b>1</b></font>) = Divizor <font color="blue">And</font> Sh.Cells(Index - <font color="darkblue"><b>1</b></font>&, <font color="darkblue"><b>1</b></font>) = Divizor <font color="blue">Then</font> _
      Sh.Rows(Index).Delete
  <font color="blue">Next</font>
  <font color="blue">For</font> Index& = <font color="darkblue"><b>2</b></font> <font color="blue">To</font> Sh.UsedRange.Rows.Count <font color="blue">Step</font> <font color="darkblue"><b>3</b></font>
    Row& = Row& + <font color="darkblue"><b>1</b></font>&
    <font color="blue">Name</font>$ = Sh.Cells(Index, <font color="darkblue"><b>1</b></font>)
    Sh.Cells(Row, <font color="darkblue"><b>2</b></font>) = <font color="blue">Name</font>
    Sh.Cells(Row, <font color="darkblue"><b>3</b></font>) = Sh.Cells(Index + <font color="darkblue"><b>1</b></font>&, <font color="darkblue"><b>1</b></font>)
    Sh.Cells(Row, <font color="darkblue"><b>4</b></font>) = Left(<font color="blue">Name</font>, InStr(<font color="blue">Name</font>, <font color="teal">":"</font>) - <font color="darkblue"><b>1</b></font>&)
  <font color="blue">Next</font>
  <font color="blue">With</font> Sh.Range(Sh.Cells(<font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>2</b></font>), Sh.Cells(Row, <font color="darkblue"><b>4</b></font>))
    .Sort [D1]
    <font color="blue">For</font> Row& = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> Row
      Index = Row * <font color="darkblue"><b>3</b></font> - <font color="darkblue"><b>1</b></font>&
      Sh.Cells(Index, <font color="darkblue"><b>1</b></font>) = Sh.Cells(Row, <font color="darkblue"><b>2</b></font>)
      Sh.Cells(Index + <font color="darkblue"><b>1</b></font>&, <font color="darkblue"><b>1</b></font>) = Sh.Cells(Row, <font color="darkblue"><b>3</b></font>)
    <font color="blue">Next</font>
    .Delete
  <font color="blue">End</font> <font color="blue">With</font>
  Application.ScreenUpdating = True
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы