
На изображении ниже показано, чего я хочу добиться:
Объяснение:
У меня есть таблица, смешанная с текстом без форматирования и жирным+курсивным текстом. Я хочу изменить формат жирного+курсивного текста, чтобы он стал жирным текстом с оранжевым выделением. Текст без форматирования остается неизменным.
Кроме как форматировать их по одному вручную, есть ли более простой и быстрый способ отформатировать их?
решение1
Это можно сделать с помощью VBA. Этот код протестирован в Excel 2013. Хотя вы не указали версию, это должно быть достаточно универсальным, чтобы работать в Excel 2003, на всякий случай.
На рабочем листе нажмите Alt+ F11, чтобы открыть редактор VBA. ИзВставлятьменю, вставьтеМодуль. Дважды щелкните по вставленному модулю на левой панели, чтобы открыть редактор его кода.
Теперь вставьте в него следующий код.
Public Sub myformat()
Dim rng As Range
Set rng = Range("Sheet1!D4:D11") 'Specify the desired SheetName!Range here
For Each cel In rng.Cells
If cel.Font.Bold = True And cel.Font.Italic = True Then
cel.Font.Italic = False
cel.Interior.ColorIndex = 44 '44 is the color index number for standard Orange in Excel
End If
Next cel
End Sub
Это создает макрос VBA с именем myformat
. Здесь вам нужно вручную указать SheetName!Range. В этом примере Sheet1!D4:D11
— диапазон данных. Сохраните и вернитесь на рабочий лист.
Нажмите Alt+ F8, чтобы открыть диалоговое окно «Макрос», и запустите этот myformat
макрос, чтобы получить желаемый эффект.