Моего кодс помощью VBA для пузырьковой диаграммы пироги в Excel
Sub PieMarkers()
Dim chtMarker As Chart
Dim chtMain As Chart
Dim intPoint As Integer
Dim rngRow As Range
Dim lngPointIndex As Long
Dim thmColor As Long
Dim myTheme As String
Application.ScreenUpdating = False
Set chtMarker = ActiveSheet.ChartObjects("chtMarker").Chart
Set chtMain = ActiveSheet.ChartObjects("chtMain").Chart
Set chtMain = ActiveSheet.ChartObjects("chtMain").Chart
Set rngRow = Range(ThisWorkbook.Names("PieChartValues").RefersTo)
For Each rngRow In Range("PieChartValues").Rows
chtMarker.SeriesCollection(1).Values = rngRow
ThisWorkbook.Theme.ThemeColorScheme.Load GetColorScheme(thmColor)
chtMarker.Parent.CopyPicture xlScreen, xlPicture
lngPointIndex = lngPointIndex + 1
chtMain.SeriesCollection(1).Points(lngPointIndex).Paste
thmColor = thmColor + 1
Next
lngPointIndex = 0
Application.ScreenUpdating = True
End Sub
Function GetColorScheme(i As Long) As String
Const thmColor1 As String = "C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Blue Green.xml"
Const thmColor2 As String = "C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Orange Red.xml"
Select Case i
Case 0
GetColorScheme = thmColor1
Case 1
GetColorScheme = thmColor2
End Select
End Function
код предназначен для изменения цвета темы последовательных круговых диаграмм, которые используются в виде пузырьков в пузырьковой диаграмме. Таким образом, функция предназначена только для выбора цветовой схемы, которую я ранее сохранил в виде строки, а затем для ее изменения в соответствии с запуском скрипта, чтобы первый пирог имел другой цвет, чем следующая круговая диаграмма. Я получаю сообщение об ошибке при отладке кода на линии
ThisWorkbook.Theme.ThemeColorScheme.Load GetColorScheme (thmColor)
сообщение об ошибке ошибка во время выполнения 2147024809 говоря указанное значение из range..can кто-нибудь помочь мне в чем проблема?
И будет ли какой-либо способ интегрировать отображение компонентов пироги (имя из componetns, которые Ši, указанные в верхней части колонны в каждой круговой диаграмме, который затем передается на пузырьковой диаграмму?
Возможно, вы можете просто изменить цветную тему перед копированием в качестве изображения. Или вы можете перейти к более сложному/конкретному маршруту и применить некоторые предварительно заданные/пользовательские цвета к каждой точке в 'SeriesCollection (1)'. Но если у вас нет конкретных потребностей для конкретных цветов, простое изменение темы до копирования/вставки должно дать вам некоторые варианты. –
Вам не придется создавать разные диаграммы, вы просто применяете 'Theme.ThemeColorScheme' к активной книге, которая изменит внешний вид/цвет диаграммы. См. Мой ответ ниже. –