перебрать все ячейки во всех листах в книге, изменить формат, если красный - PullRequest
4 голосов
/ 28 апреля 2011

Я пытаюсь изменить весь красный текст на черный во всех ячейках для всех листов рабочей книги Excel. Я использую следующее:

Sub RedToBlack()
Dim Current As Worksheet
For Each Current In Worksheets
For Each cell In Current
    If cell.Font.ColorIndex = 3 Then
        cell.Font.ColorIndex = 0
    End If
  Next
Next
End Sub

Я знаю, что это неправильно, но хотел дать представление о том, что я пытаюсь сделать. Кто-нибудь может дать совет? Спасибо за вашу помощь, я очень новичок в этом.

Ответы [ 2 ]

4 голосов
/ 28 апреля 2011

То, что у вас есть, вероятно, сделает работу.Однако это было бы крайне неэффективно.Лучшим способом было бы использовать поиск и замену следующим образом.

'set the next find to find the red
With Application.FindFormat.Font
     .ColorIndex = 3
End With
'set the next find to replace with black
With Application.ReplaceFormat.Font
     .ColorIndex = 1
End With

'Do the actual replacing
For Each aSheet In ActiveWorkbook.Worksheets
     aSheet.Activate

     Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
     xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
Next aSheet

Это делается для всех ячеек на всех листах для всей книги.Вы также можете сделать это, перейдя в обычное окно поиска и замены, а затем нажав кнопку параметров.

0 голосов
/ 28 апреля 2011
Sub change_color()
For Each sht In ActiveWorkbook.Sheets
    Set rng = sht.UsedRange
        For Each cell In rng
            If cell.Font.ColorIndex = 3 Then
                cell.Font.ColorIndex = 0
            End If
        Next cell
Next sht
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...