Изменение выделенного текста к другому цвету

Мы можем вычислить все три части вручную, так же как в этот ответ:

sprintf("%02d:%02d:%02d", x %/% 3600, (x %% 3600) %/% 60, x %% 60)
#  [1] "38:49:25"  "88:50:17"  "145:45:29" "00:24:51"  "58:50:31"  "07:39:31" 
#  [7] "04:14:14"  "118:45:46" "87:13:36"  "02:36:12" 

Поскольку один час имеет 3600 секунд, x %/% 3600 дает количество полных часов 112] дает количество полных минут в оставшееся время, а x %% 60 - количество оставшихся секунд.

5
задан braX 12 June 2018 в 13:55
поделиться

3 ответа

Это не с 2007, но идея должна подойти. Этот пример изменяет любое текущее выделение на новое выделение по умолчанию (wdBrightGreen) и любой зеленый текст к красному.

Sub ChangeColor
Options.DefaultHighlightColorIndex = wdBrightGreen

    Selection.Find.ClearFormatting
    Selection.Find.Highlight = True
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Highlight = True
    Selection.Find.Execute Replace:=wdReplaceAll

    Selection.Find.ClearFormatting
    Selection.Find.Font.Color = wdColorBrightGreen
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Font.Color = wdColorRed
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
3
ответ дан 14 December 2019 в 19:30
поделиться

Можно всегда сохранить файл как HTML и заменять цвета там. Цвет представлен с

<span style='color:red'>...

и выделение

<span style='background:yellow;mso-highlight:yellow'>...

Должно быть легко управлять, если Ваш документ достаточно прост.

Редактирование, которое отвечает на редактирование в вопросе: После того, как Вы сделаны, вновь открыли файл и сохранили файл назад как .doc.

1
ответ дан 14 December 2019 в 19:30
поделиться

Это должно работать на Вашу цель:

Sub RehiliteAll()

    Const YOUR_REQUIRED_COLOR_IDX As Integer = 6 'RED'
    Dim doc As Range
    Set doc = ActiveDocument.Range

    With doc.Find
        .ClearFormatting 'resets default search options'
        .Highlight = True
        .Wrap = wdFindStop

        While .Execute

            If doc.HighlightColorIndex = YOUR_REQUIRED_COLOR_IDX Then
                doc.Select
                MsgBox doc.HighlightColorIndex
                'Do stuff here'
            End If

            'doc has been reassigned to the matching'
            'range; we do this so word keeps searching'
            'forward'
            doc.Collapse wdCollapseEnd
        Wend
    End With

    Set doc = Nothing
End Sub

'I am closing comment quotes so that SO formatting'
'does not get messed up too much.'
0
ответ дан 14 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: