VBA在Excel中的應用(一):改變符合條件單元格的背景顏色


  在使用excel處理數據的時候,為了能更清晰的標示出滿足特定條件的單元格,對單元格添加背景色是不錯的選擇。手工處理的方式簡單快捷,但是當遇到大批量數據,就會特別的費時費力,而且不討好(容易出錯)。通過代碼來處理是個不錯的選擇,excel可以通過VBA編程來處理內部數據,在打開excel頁面后,可以通過“alt + F11”組合鍵來啟動VBA編程界面,跟VB的編程界面和語法一樣,需要注意的是如何調用excel的內容。VBA通過sheet, range和cells三個層次來調用excel中的制定區域,sheet指定要處理的表格頁,ranges制定要處理的范圍,可以是一個單元格,也可以是多個單元格,cells(i,j)通過制定行下標i和列下表j來定位制定的單元格,通過這三個層次就基本能定位excel中的任意制定位置。

     關於vba和excel編程,請詳見:http://msdn.microsoft.com/zh-cn/library/ee814737.aspx

                                             http://www.cnblogs.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

  結果如下所示:

     

 

  附1:excel中的顏色代碼(colorIndex)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM