Удалить одинаковые строки VBA
Формулировка задачи:
Подскажите, пожалуйста, как написать такой кусок на VBA
Если в один столбец в Экселе расположены показатели разделенные решелкой (вот так)
100
200
300
##
100
200
300
##
##
100
200
300
и если встречается 2 решетки подряд то эту строку надо удалить. Как написать это в коде?
Спасибо...
Если в один столбец в Экселе расположены показатели разделенные решелкой (вот так)
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>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д