为与PivotItem对应的值着色

时间:2018-03-26 15:38:27

标签: excel vba excel-vba

我有一个充满了数据透视表的工作簿,我必须分析。 大多数这些Pivots只有一个我需要看的数字,所以突出它们会很有帮助。

这就是我希望枢轴看起来像。

![enter image description here

我想要创建一个宏,它将通过并找到“高重要性”,并以绿色突出显示%值(与“Universe%的总和”相交的值)。这比我想象的要困难得多,因为似乎没有办法将PivotField与另一个匹配。

这是我已经走了多远,然后我不知道还有什么要做,因为PivotItems没有任何我可以用来做我想要的属性。有什么想法吗?

Sub colorPivotItemValue()
    Dim Sheet As Worksheet
    For Each Sheet In ThisWorkbook.Worksheets
        Dim Pivot As pivotTable
        For Each Pivot In Sheet.PivotTables
            Dim pivotFieldToEdit As PivotField
            For Each pivotFieldToEdit In Pivot.PivotFields
                If pivotFieldToEdit.Name = "importance" Then
                    Dim pivotItemToEdit As PivotItem
                    For Each pivotItemToEdit In pivotFieldToEdit.PivotItems
                        If pivotItemToEdit.Name = "High importance" Then
                            pivotItemToEdit.Interior.Color = 5287936
                        End If
                    Next pivotItemToEdit
                End If
            Next pivotFieldToEdit
        Next Pivot
    Next Sheet
End Sub

1 个答案:

答案 0 :(得分:1)

我认为表的范围是已知的。

所以我就是这样做的:

Set the range into a variable (e.g. Set range1 = Application.Range("A1:F20")

Dim cel As Range

Dim col As Integer

Dim row As Integer

For Each cel in range1.Cells

If Cells.Value = "Sum of Universe %" Then

col = cel.Column

End If

Next cel

现在我们应该将列作为正确列的整数列。

现在我们应该再次查看相同的数组并找到行。

For Each cel in range1.Cells

If Cells.Value = "High importance" Then

row = cel.Row

Cells(row, col).Interior.Color = RGB(0, 255, 0) {or whatever color you want}

End If

Next cel

End Sub

还是我误解了你?可能会有一些语法错误,因为我没有尝试过这个。也可以在一个循环中完成它,但这更容易理解和管理imo。