2012-10-18 31 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

它交替行的顏色,每當一個單元格的值是不一樣的它下面的一個。現在它被設置爲淺灰色,但是如果你想要的話,你可以將它改成更亮的東西。你可以用自己的邏輯來獲得你想要的任何顏色。祝你好運。