在使用excel處理數據的時候,為了能更清晰的標示出滿足特定條件的單元格,對單元格添加背景色是不錯的選擇。手工處理的方式簡單快捷,但是當遇到大批量數據,就會特別的費時費力,而且不討好(容易出錯)。通過代碼來處理是個不錯的選擇,excel可以通過VBA編程來處理內部數據,在打開excel頁面後,可以通過“alt + F11”組合鍵來啟動VBA編程界面,跟VB的編程界面和語法壹樣,需要註意的是如何調用excel的內容。VBA通過sheet, range和cells三個層次來調用excel中的制定區域,sheet指定要處理的表格頁,ranges制定要處理的範圍,可以是壹個單元格,也可以是多個單元格,cells(i,j)通過制定行下標i和列下表j來定位制定的單元格,通過這三個層次就基本能定位excel中的任意制定位置。
關於vba和excel編程,請詳見:/library/ee814737.aspx
blogs.com/jaxu/archive/2009/04/04/1407004.html
實例:在做驗證性因子分析(Confirmed Factoe Analysis,CFA)的時候,我們通常因子載荷(factor loading)來判斷構念(construct)之間的區別效度(discriminant validity),即同壹構念下的item之間correlation盡可能高,而不同構念的item之間的相關性盡可能低。所以將correlation matrix中大於沒特定閾值單元格用特定背景顏色加以區分,就可以清晰的看出item之間的相關關系。
假設我們有壹個64*64的correlation matrix,那麽在excel中是用vba對不同範圍的correlation值的單元格添加背景顏色的代碼如下:
1 Sub changeBgColor()
2 Dim i As Integer
3 Dim j As Integer
4 Dim r As Integer
5 Dim c As Integer
6
7
8 r = 67 ‘最後壹行是第67行
9 c = 66 ‘最後壹列是第66列
10
11 For i = 3 To r ‘叠代,從第3行開始,壹直到最後壹行
12 For j = 2 To c ‘叠代,從第2列開始,壹直到最後壹列
13
14 If Cells(i, j) > 0.5 And Cells(i, j) < 0.6 Then ‘如果單元格Cells(i,j)的值大於0.5下於0.6,那麽背景顏色代碼為42
15 Cells(i, j).Interior.ColorIndex = 42
16 End If
17
18 If Cells(i, j) > 0.6 And Cells(i, j) < 0.7 Then
19 Cells(i, j).Interior.ColorIndex = 43
20 End If
21
22 If Cells(i, j) > 0.7 And Cells(i, j) < 0.8 Then
23 Cells(i, j).Interior.ColorIndex = 6
24 End If
25
26 If Cells(i, j) > 0.8 And Cells(i, j) < 1 Then
27 Cells(i, j).Interior.ColorIndex = 3
28 End If
29 Next
30 Next
31
32 End Sub