У меня есть документ Word 2007 с множеством таблиц.В каждой таблице есть определенные ячейки, заполненные двумя пользовательскими цветами.Я создал макрос, который принимает входные значения 3 для подачи функции RGB, создавая один из цветов, сопоставляя его с каждым из цветов и изменяя совпадение с новым цветом.
Я использовал If
оператор, который сравнивает цвет заполненной ячейки с цветом, возвращаемым функцией RGB, передавая функцию с вводом, данным пользователем.
If ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor = RGB(inputRed, inputGreen, inputBlue) Then
'code
end if
Пока я просматривал документ, чтобы увидеть результатыЯ заметил, что несколько ячеек из 3 таблиц остались со старым цветом, поэтому, по-видимому, макрос не смог его распознать.
В Word 2007 я выбрал ячейку, в которой должен был измениться цвет.Я перешел к Домой -> Затенение -> Другие цвета -> Пользовательский и увидел 3 значения, которые идеально совпадают с 3 значениями, заданными в качестве ввода пользователем.
После 30 минут просмотраНа мониторе я подумал о том, чтобы пойти к врачу, чтобы проверить мои глаза.:)
Прежде чем сделать это, я начал отлаживать приложение.на каждой из ячеек, которые не были изменены.Изучив эту строку:
ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor
я увидел, что она вернулась -1 .
Я думаю, что -1 эквивалентно нулю или нулю, означая, что либоячейка не заполнена, но если да, то почему я вижу значения RGB?Или, возможно, система не может прочитать значения RGB, но кто эта система?
У вас есть ссылка, где метод Shading.BackgroundPatternColor
хорошо объяснен?