操作单元格对象1——Excel之VBA(5)
单元格对象选取
3中选择方式:
1)[a3]
2) cells(3,1)
3) range("a1")
一、range 范围单元语句
示例:
range("a1:a10").select
range("a1").value = 1
注:单元格的默认属性就是.value,故而range("a1")= 1不报错
1.range语句的属性
1) Offset 偏移属性
2) End 边界属性
3) EntireRow 整行属性
4) resize 重定义区域
5) copy 复制单元格
示例:
range("a1").offset(2,3).select 注:选中A1的下2,右3的偏移单元格,即D3 |
range("a1").End(xlUP) 注:选择A1所在数据区域的上边界,作用同双击单元格上边线 |
range("a1").EntireRow 注:整行 |
range("a1").resize(1,3) 注:重定义选择区域大小,选中A1单元格所在的1行3列区域 |
Range.("h7:l7").copy Range("n7") 注:复制区域h7到l7的内容,到n7开始的同等区域 |
牛刀小试:
要求:拆分数据到多表
Sub chaifen() Dim i As Integer Dim k As Integer Dim j As Integer For j = 2 To Sheets.Count For i = 2 To Sheets(1).Range("a65536").End(xlUp).Row If Sheets(1).Range("d" & i).Value = Sheets(j).Name Then k = Sheets(j).Range("a65536").End(xlUp).Row Sheets(1).Range("d" & i).EntireRow.Copy Sheets(j).Range("a" & k + 1) End If Next Next End Sub 算法思想: 逐条扫描数据表取数据,取完一张表再去取下一张表 数据表扫描次数,2到空行上边界。Sheets(1).Range("a65536").End(xlUp).Row,空行区域的上边界的行号 若部门名与表名匹配,则复制整行到,目标表的第一个匹配到的空行。 k = Sheets(j).Range("a65536").End(xlUp).Row,目标表的空行上边界
|
带清除的拆分:
Sub chaifen() Dim i As Integer Dim k As Integer Dim j As Integer Call clear For j = 2 To Sheets.Count For i = 2 To Sheets(1).Range("a65536").End(xlUp).Row If Sheets(1).Range("d" & i).Value = Sheets(j).Name Then k = Sheets(j).Range("a65536").End(xlUp).Row Sheets(1).Range("d" & i).EntireRow.Copy Sheets(j).Range("a" & k + 1) End If Next Next End Sub Sub clear() Dim i As Integer For i = 2 To Sheets.Count Sheets(i).Range("a2:f10000").ClearContents Next End Sub
|
续: