2016-06-01 4 views
0

Я работаю над макросом форматирования, который выбирает и форматирует их в соответствии с выбранными значениями в пользовательской форме. Один из этих вариантов создает большую объединенную ячейку с цветовым градиентом от светлого до темно-красного.Неограниченное изменение цвета градиента

Когда я запускаю макрос, ячейки полностью отформатированы соответствующим образом, но когда я перемещаюсь по листу, я заметил странную проблему, когда цвет градиента изменится на синий, а не на красные. Интересно, что исходный цвет будет случайным образом возвращаться, иногда даже с градиентом от синего до красного или красного до синего.

Если я использую макет формата, чтобы вытащить нечеткую ячейку и протестировать ее в другом месте, новая сломанная/изменяющаяся цветовая схема перемещается вместе с ней. Я включил код, который форматирует объединенную ячейку ниже. Возможно, проблема связана с тем, как я обозначаю цвет интерьера?

With Range(WorkingRange(1, 2), WorkingRange(1, WorkingRange.Count - 1)) 
    .Merge 
    .HorizontalAlignment = xlLeft 
    .WrapText = True 
    .Interior.Pattern = xlPatternLinearGradient 
    .Interior.Gradient.ColorStops.Add(0).Color = 255 
    .Interior.Gradient.ColorStops.Add(0).TintAndShade = 0 
    .Interior.Gradient.ColorStops.Add(1).Color = 130 
    .Font.Bold = True 
End With 

ответ

1

Вы добавляете ColorStop 0 два раза. Второй раз с цветом по умолчанию.

Должно быть

... 
    .Interior.Pattern = xlPatternLinearGradient 
    .Interior.Gradient.ColorStops.Clear 
    With .Interior.Gradient.ColorStops.Add(0) 
    .Color = RGB(255, 0, 0) 
    .TintAndShade = 0 
    End With 
    .Interior.Gradient.ColorStops.Add(1).Color = RGB(130, 0, 0) 
... 

Использование функции RGB сделает его более гибким для использования с различными цветами.

+0

Я думаю, что это может быть даже не проблема с кодом. Я только что закрыл и снова открыл документ, изменив код, который вы предложили, и отформатировал тестовую область, и цвета изменились с того момента, когда я отформатировал его (от белого до темно-красного) до того, как я снова открыл файл (теперь переход от желаемого красного к синий). Есть идеи? – RGA

+0

Пробовал добавлять ссылки на изображения, но не мог, так вот они: [После форматирования] (http://i.imgur.com/rwQcqvT.png) [После повторного открытия] (http: // i. imgur.com/8tLgT0m.png) – RGA

+0

Извините, не удается воспроизвести вашу проблему с помощью Excel 2007. Он работает так, как ожидается, даже после закрытия и повторного открытия. –