Excel 2010 VBA 入门 032 将列进行分组
目錄
Columns對象和Rows對象
單列和單行的表示
多列和多行的表示
Group方法和Ungroup方法
單元格對象的EntireColumn屬性和EntireRow屬性
單元格區域的Columns屬性和Rows屬性
Outline對象
示例:
Columns對象和Rows對象
? ? Columns對象和Rows對象分別表示整列單元格和整行單元格,是一種特殊的單元格區域對象。當這兩個對象沒有任何指定地址時,分別表示整個工作表的所有列和所有行。
單列和單行的表示
當需要表示單列或單行時,可以使用以下方式表示:
Columns ( ColN)
Rows (RowN)
? ? 其中,CoIN和RowN分別表示列號和行號,為大于0的整數。比如:Columns (5)表示第5列,即E列;Rows (5)表示第5行。
多列和多行的表示
當需要表示多行時,可以使用以下方式表示:
Columns("ColName1:ColName2")
Rows ("RowN1:RowN2")
? ? 其中,CoIName1和CoIName2表示起始列和終止列的列標,即A、B、C等。如E至F列,即為Columns( "E:F”)。RowN1和RowN2表示起始行和終止行的行號,如表示第5至第10行,即為Rows(“5:10”)。
? ? 值得注意的是,利用Columns對象表示多列時,不能使用數字,只能使用用英文字母表示的列標。
Group方法和Ungroup方法
? ? 當需要對某幾列或某幾行創建組時,可以使用Columns對象和Rows對象的Group方法。Group方法是可以多次使用的,即可以創建多個級別的分組。當需要取消分組時,可以使用Ungroup方法。
單元格對象的EntireColumn屬性和EntireRow屬性
? ? 除了Columns對象和Rows對象表示整列和整行外,還可以使用Range對象的EntireColumn屬性和EntireRow屬性表示單元格所在的整列和整行。比如本例表示E:F列,可以使用以下任意表達式表示:
Range ( "E1 : F1" ).EntireColumn
Range ( Cells (1, 5) , Cells (1, 6)). EntireColumn
? ? 由于使用Columns對象表示多列時無法實現用數字,而通過Range對象的EntireColumn屬性則使得程序更靈活,可以方便開發者對其使用數字進行循環,從而使得批量操作成為可能。如從第5列開始每隔3列將相鄰兩列進行組合,因而使用EntireColumn可以進行以下循環:
Dim ColN As integer
For ColN = 5 T0 15 Step 3Range (Cells (1, ColN) , Cells (1, ColN + 1)).Group
Next
單元格區域的Columns屬性和Rows屬性
? ? 單元格區域(Range)對象有兩個屬性Columns和Rows,它們所表示的是該單元格區域的整列和整行,如圖所示。如以下表達式表示的是該區域的第2列,即C4:C10。
Range("B4:D10").Columns(2)
? ? 如需要表示某個區域的多列時,比如B4:D10的第1和第2列,即B4:C10區域,可以采用以下表達式:
Range("B4:D10").Columns("A:B")
? ? 當使用該種表達式表達多列時,VBA程序將會以B4: D10區域的第1列作為A列而重新給該區域的各列定義,也即是一個相對的位置表示。如圖所示,該區域的第1列作為A列,該區域的第2列作為B列,如要表示該區域的第1和第2列,則為Columns(”B:C”)。
Outline對象
- ? ??Outline是工作表(Worksheet)對象的一個屬性,同樣也是一個對象。用它的3個重要屬性可以對創建分組的格式進行設置。
- ? ? SummaryRow屬性表示創建行分組時匯總行的位置,可以為xISummaryAbove或者xISummaryBelow,分別表示匯總行在明細數據上方或下方。
- ? ? SummaryColumn屬性表示創建列分組時匯總列的位置,可以為xISummaryLeft或者xISummaryRignt,分別表示匯總列在明細數據左方或右方。
- ? ? AutomaticStyles屬性表示分級顯示使用自動樣式,可以為True或False。
? 這三個屬性分別對應了分級顯示設置中的三個選項,如圖所示。
示例:
如圖所示,如何使用VBA將每月的工資明細按每3個月進行快速分組?
| 員工編號 | 姓名 | 部門 | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
| 0006 | 程建華 | 財務部 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 | 2875 |
| 0009 | 李國敏 | 財務部 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 | 3050 |
| 0016 | 袁志剛 | 財務部 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 | 3523 |
| 0017 | 周漢林 | 管理部 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 | 2890 |
| 0018 | 駢永富 | 管理部 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 | 2850 |
| 0020 | 孫玉梅 | 管理部 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 | 2580 |
| 0023 | 陳亞菁 | 管理部 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 | 3460 |
| 0026 | 康小蕓 | 管理部 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 |
| 0028 | 劉晨 | 管理部 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 | 5318 |
| 0042 | 齊光 | 管理部 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 | 5425 |
| 0052 | 于健惠 | 管理部 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 | 4320 |
| 0060 | 王文群 | 管理部 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 | 1875 |
| 0066 | 曾國安 | 管理部 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 | 4726 |
| 0072 | 劉志峰 | 管理部 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 | 1850 |
| 0080 | 劉玉錄 | 管理部 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 | 1385 |
| 0114 | 俞衛廣 | 管理部 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 | 6700 |
| 0125 | 楊建軍 | 人事部 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 | 2700 |
| 0209 | 曲波 | 人事部 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 | 3215 |
| 0215 | 林革壯 | 市場部 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 | 1565 |
| 0233 | 李衛卿 | 市場部 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 | 6213 |
| 0247 | 申玲 | 市場部 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 | 1230 |
| 0260 | 孫正發 | 市場部 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 | 1950 |
| 0265 | 毛傳陽 | 銷售部 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 |
| 0288 | 張元端 | 銷售部 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 | 2465 |
| 0293 | 朱凌波 | 銷售部 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 | 3420 |
| 0314 | 張宏 | 銷售部 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 | 2310 |
| 0327 | 酈錫文 | 銷售部 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 | 1912 |
| 0328 | 張占斌 | 銷售部 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 | 1800 |
| 0334 | 曹陽 | 銷售部 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 | 2632 |
| 0352 | 周書敬 | 銷售部 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 | 4200 |
| 0370 | 姚勝 | 銷售部 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 | 5300 |
| 0371 | 郭建 | 銷售部 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 | 1571 |
| 0374 | 高波 | 銷售部 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 | 6200 |
| 0377 | 盧衛 | 總經辦 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 | 3200 |
| 0391 | 趙秀池 | 總經辦 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 | 2450 |
Sub 分組()Columns("E:F").GroupColumns("H:I").GroupColumns("K:L").GroupColumns("N:O").Group
End Sub
?
?
總結
以上是生活随笔為你收集整理的Excel 2010 VBA 入门 032 将列进行分组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序 高德地图知道两点求道路_微信
- 下一篇: 我国将进一步加强青年科技人才培养和使用,