2015-03-02 2 views
0

Я собрал следующий код из других статей StackOverflow, которые решили схожие проблемы.VBA действительное значение RGB исключает из диапазона исключение

Dim light As MsoRGBType, dark As MsoRGBType 
light = RGB(195, 214, 155) 
dark = RGB(79, 98, 40) 

ws.Shapes("Arrow1").Fill.ForeColor.RGB = dark 

В последней строке кода, я получаю ошибку:

Runtime Error '-2147024809 (80070057)': The value is out of range. 

Получение формы не бросает ошибку, я проверил. Я не могу определить собственный способ настройки цветов в формате Excel, потому что, как ни странно, запись процесса ручного изменения создает пустой макрос.

Формы, с которыми я работаю, являются стандартными линиями с концами в стиле стрелки, в случае, если это относится к процессу окраски.

+1

попробуйте 'ws.Shapes (« Arrow1 »). Line.ForeColor.RGB = dark' – BrakNicku

+0

Что-то, спасибо! – BenDot

ответ

0

Несмотря на то, что Excel распознает стандартную строку как объект Shape, некоторые свойства Shape недоступны для строк.

Видя, что линия не относится к форме с рамкой и контентом, Fill не вычисляет. Используя Shape.Line, вместо этого получается желаемый результат.


В коде:

ws.Shapes("Arrow1").Line.ForeColor.RGB = dark 

Благодаря user3964075 его поучительный комментарий!

+0

Вы должны, вероятно, разрешить @ user3964075 ответить на вопрос и взять кредит на это ... –

+0

@DavidZemens Я отвлеку свой ответ, если он захочет сделать это, конечно. В то время я думал, что разумно держать решение где-то, чтобы его можно было легко получить, если он сам не написал. – BenDot

Смежные вопросы