У меня есть документ Excel с условным форматированием, который меняет цвет фона ячейки, в зависимости от конкретного выбранного [выпадающего] текста. Например, Да, цвет фона ячейки меняется на Зеленый, Нет на Красный, Неизвестен на Желтый и Не применим к Серому.
Все легко.
Затем мне нужно отправить документ в документ Word, чтобы заполнить документ Word таблицей Excel - документ Word также содержит другой текст, не относящийся к Excel.
Поскольку условное форматирование ячеек не встречается, я использовал недооцененный код в макросе, чтобы изменить цвет фона в Word. Он запускается, но, кажется, после первого цикла, кажется, сбой с ошибкой - Runtime error 5907 - there is no table at this location
.
строка в коде r.Cells(1).Shading.BackgroundPatternColorIndex = backgroundColor
выделена желтым цветом.
Мой уровень кодирования является базовым, поэтому я не знаю, что происходит не так.
Если кто-нибудь сможет предложить простое решение, я был бы признателен.
Спасибо
Dim r As Range
Sub UBC()
color "No", wdRed
color "Yes", wdGreen
color "Unknown", wdYellow
color "Not Applicable", wdGray50
End Sub
Function color(text As String, backgroundColor As WdColorIndex)
Set r = ActiveDocument.Range
With r.Find
Do While .Execute(FindText:=text, MatchWholeWord:=True, Forward:=True) = True
r.Cells(1).Shading.BackgroundPatternColorIndex = backgroundColor
Loop
End With
End Function