【问题标题】:Excel VBA to fill pie chart colors from cells with conditional formattingExcel VBA使用条件格式从单元格中填充饼图颜色
【发布时间】:2014-11-12 23:35:30
【问题描述】:

我没有使用 VBA 的经验,我正在尝试根据 Excel 2010 中数据单元格的颜色来格式化一张活动工作表上的所有饼图。我发现此代码来自:http://datapigtechnologies.com/blog/index.php/color-pie-chart-slices-to-match-their-source-cells/

Sub ColorPies()
Dim cht As ChartObject
Dim i As Integer
Dim vntValues As Variant
Dim s As String
Dim myseries As Series

    For Each cht In ActiveSheet.ChartObjects
        For Each myseries In cht.Chart.SeriesCollection

            If myseries.ChartType <> xlPie Then GoTo SkipNotPie
            s = Split(myseries.Formula, ",")(2)
            vntValues = myseries.Values

            For i = 1 To UBound(vntValues)
                myseries.Points(i).Interior.Color = Range(s).Cells(i).Interior.Color
            Next i
SkipNotPie:
    Next myseries
Next cht
End Sub

此代码运行良好,但无法从条件格式中提取颜色。

我遇到了这个 VBA 读取条件格式颜色的解决方案:

Selection.FormatConditions(1).BarColor.Color

但是我无法在上述 VBA 块中实现它。我尝试用它的不同部分替换Interior.Color,但似乎没有任何效果。有谁知道一个简单的方法来做到这一点?

提前谢谢你!

【问题讨论】:

  • 哪个版本的 Excel?

标签: vba excel charts excel-2010


【解决方案1】:

由于你有 2010,你可以使用 DisplayFormat 属性:

        For i = 1 To UBound(vntValues)
            myseries.Points(i).Interior.Color = Range(s).Cells(i).DisplayFormat.Interior.Color
        Next i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2013-01-12
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    相关资源
    最近更新 更多