目录
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