- Код: Выделить всё
If(Cells(i, 3).Font.Bold = True)
то такие строки переместить в начало списка, но именно строки, не ячейки...
If(Cells(i, 3).Font.Bold = True)
sonata писал(а):Как осуществить сортировку по условию :
- Код: Выделить всё
If(Cells(i, 3).Font.Bold = True)
то такие строки переместить в начало списка, но именно строки, не ячейки...
Sub Сортировка_по_шрифту()
Dim Ñ As Object
Dim i As Integer
i = 0
For Each C In Worksheets("Ë&&&1").Range("B1:B500")
i = i + 1
If C.Font.Bold = True Then
Worksheets("Ë&&&1").Rows(2).EntireRow.Insert
Worksheets("Ë&&&1").Rows(i).Cut Worksheets("Ë&&&1").Rows(2)
End If
Next C
End Sub
Sub SortByBold(SortRange As Range)
Dim i As Long, BoldLinesCount As Long
With SortRange
For i = 1 To .Rows.Count
If .Cells(i, 3).Font.Bold = True Then
.Rows(1).Insert
.Rows(i).Cut .Rows(1).Offset(-1)
.Rows(i).EntireRow.Delete xlShiftUp
BoldLinesCount = BoldLinesCount + 1
End If
Next
End With
If BoldLinesCount > 0 Then SortRange.Rows("1:" & BoldLinesCount).Sort SortRange.Cells(1, 3)
End Sub
sonata писал(а):Логически все выглядит - совершенно....
Не могли бы Вы подсказать как теперь воспользоваться данным творением?
sonata писал(а):Сделала, как Вы посоветовали...Но...Комп подвис окончательно, и, кроме добавления пустых строк я не увижела ничего....
- Код: Выделить всё
Sub Сортировка_по_шрифту()
Dim Ñ As Object
Dim i As Integer
i = 0
For Each C In Worksheets("Ë&&&1").Range("B1:B500")
i = i + 1
If C.Font.Bold = True Then
Worksheets("Ë&&&1").Rows(2).EntireRow.Insert
Worksheets("Ë&&&1").Rows(i).Cut Worksheets("Ë&&&1").Rows(2)
End If
Next C
End Sub
Очень прошу, помочь!!!
Sub Сортировка_по_шрифту()
Dim i As Integer
For i = 1 To 500
If Worksheets("Лист1").Range("B" & i).Font.Bold = True And i > 1 Then
Worksheets("Лист1").Rows(1).EntireRow.Insert
i = i + 1
Worksheets("Лист1").Rows(i).Cut Worksheets("Лист1").Rows(1)
Worksheets("Лист1").Rows(i).Delete
i = i - 1
End If
Next i
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 66