2012-10-18 34 views
2

我在Excel工作表中有一个数据透视表,其中包含对我的数据库进行查询的结果。我想根据每个其他数据集自动格式化信息。Excel数据透视表条件格式化

该信息包含每位员工按员工ID号排序的4周(1个月)记录。我想编写一个模块,以便使用不同的颜色突出显示其他所有记录(员工数据集)。这甚至有可能做到吗?谢谢您的帮助!

enter image description here

+0

你好,我不相信你需要VBA这个。您可以直接进入首页 - >样式 - >格式化为表格 - >选择一种突出显示其他行的格式。当然,这也取决于您的数据透视表如何分组数据。如果你能提供一个截图,它会帮助你很多。 –

+0

好的,我上传了我想要的样子(手动完成,有100,000条记录,其效率不高) – designspeaks

+0

感谢您花时间制作图片!我建议做一个风格的唯一原因是因为您可能想在某一天更改您的列安排,并且您可能能够避免使用样式更改任何公式/ vba代码。但是,风格与一起工作有点痛苦。我会看看我能不能提出一些有用的东西。否则,我会推荐一个条件格式公式,如下面的答案。 –

回答

1

如果你坚持与解决利用VBA在这里你的问题就是一个例子。您需要指定起始范围。请不是标志着整个行会使用更多的内存(增加文件大小),所以我宁愿使用例如:范围(“A2:E2)。选择....

Sub FormatEverySecondRow() 
     range("A2").EntireRow.Select 
     Do While ActiveCell.value <> "" 
      Selection.Interior.ColorIndex = 15 
      ActiveCell.offset(2, 0).EntireRow.Select 
     Loop 
End Sub 
+1

您也可以尝试以下方法:'子FormatEverySecondRow() 昏暗我只要 昏暗bShade由于布尔 bShade =真 I = 3 做,当范围( “A” &I).value的<> “” 如果范围( “C” &I)。价值<> “” 然后 如果bShade = TRUE,则 bShade =假 否则 bShade =真 结束如果 结束如果 如果bShade = TRUE,则 范围( “B” & (“B”&i&“:H”&i).Interior。ColorIndex = 14 End If i = i + 1 Loop End Sub ' – salih0vicX

0

如果我使用一个辅助塔(K算在你的例子列)

插入到K2:

=IF(ISBlank(C2),K1,MOD(K1+1,2)) 

然后使用条件格式来突出显示该行:

Conditional Formatting

注意公式确实不是在2之前有一个$符号(即, $ K2,而不是$ķ$ 2)

0

这可能对你有用:

Sub HighlightDifferentRows() 

Dim wksht As Worksheet 
Dim wkb As Workbook 
Dim row As Range 
Dim FloatColor As Long 

FloatColor = RGB(100, 100, 100) 

Set wbk = ThisWorkbook 

Application.ScreenUpdating = False 

For Each row In Sheets(1).UsedRange.Rows 
    row.Interior.Color = FloatColor 
    If row.Cells(1, 4).Value <> row.Cells(2, 4).Value Then 
     FloatColor = -FloatColor 
    End If 
Next row 

Application.ScreenUpdating = True 

End Sub 

AlternateColorsAfterMacro

它交替行的颜色,每当一个单元格的值是不一样的它下面的一个。现在它被设置为浅灰色,但是如果你想要的话,你可以将它改成更亮的东西。你可以用自己的逻辑来获得你想要的任何颜色。祝你好运。