Изменение .Interior.ColorIndex не имеет никакого эффекта - PullRequest
1 голос
/ 25 февраля 2009

В Excel 2003, когда я меняю Series.Interior.ColorIndex на нужное мне значение, это не имеет никакого эффекта. Он действует только тогда, когда я сначала вручную изменяю цвет, а затем запускаю макрос. По-видимому, это вызывает некоторый механизм обновления. У кого-нибудь есть объяснение этому? Есть ли способ как-то вызвать это на графике? .. Т.е. убедитесь, что изменения цвета вступили в силу.

Кроме того, когда я выполняю код и смотрю ColorIndex, он не меняется даже после присвоения значения. Это одна из многих ошибок в Excel?

Код выглядит так:

Sub DoStuff()
    Dim j As Long
    For j = 1 To ActiveChart.SeriesCollection.Count
        With ActiveChart.SeriesCollection(j)
           Select Case ActiveChart.SeriesCollection(j).Name
               Case "Milk"
                  .Interior.ColorIndex = 4
               Case "Cookies"
                  .Interior.ColorIndex = 28
               Case "Honey"
                  .Interior.ColorIndex = 26
            End Select
        End With
    Next j
End Sub

Редактировать: я работаю с гистограммой.

Ответы [ 4 ]

1 голос
/ 25 февраля 2009

Редактировать: В ответ на комментарии и правки к исходному вопросу:

Я выложил пример файла Excel и смог заставить ваш код работать. Вот как выкладываются мои данные:

   |    A    |  B  |  C  |  D  |
--------------------------------
 1 | Milk    |  3  |  1  |  4  |
 2 | Cookies |  1  |  5  |  9  |
 3 | Honey   |  2  |  6  |  5  |

И гистограмма выглядит примерно так:

                          ._.
                          |C|
               ._.._.     |C|._.
 ._.   ._.     |C||H|  ._.|C||H|
 |M|._.|H|  ._.|C||H|  |M||C||H|
 |M||C||H|  |M||C||H|  |M||C||H|
---------------------------------
     1          2          3

Если все столбцы, обозначенные буквой «M» на приведенной выше диаграмме, принадлежат серии «Молоко», все столбцы, обозначенные буквой «C», принадлежат серии «Cookies», а все столбцы, обозначенные буквой «H» в серию "Мед".

Когда я запускаю ваш код на этом графике, цвета полос меняются, как и ожидалось. Можете ли вы сказать мне, что отличается между моей настройкой и вашей? Я попробую разобраться, но мне нужно больше информации:)

1 голос
/ 25 февраля 2009

Попробуйте также установить границу.

.Interior.ColorIndex = 4
.Border.ColorIndex = 4
.Border.Weight = xlMedium
0 голосов
/ 14 октября 2009

У меня была такая же проблема, при использовании Excel 2007 и 2003.

Но я исправил это, открыв книгу в 2003 году, затем отформатировав серию данных, щелкнув правой кнопкой мыши (и т. Д.) И установив для цвета заливки значение Автоматически. затем, когда я запустил свой макрос, установилась часть настройки colorindex.

0 голосов
/ 12 августа 2009

вероятно ошибка в Excel, какую версию Excel вы используете? убедитесь, что вы установили пакет обновления / исправления и попробуйте снова воспроизвести проблему.

...