单元格对象的偏移和重设(一)
1 ·单元格对象的偏移与重设:
·非常类似工作表函数中的offset函数
·不过在VBA的单元格对象中偏移(offset)和重设(resize)是两个不同的属性
2 单元格对象的偏移:
·单元格.区域offset(行,列)
·特点:单元格对象的偏移起始区域与结果区域形状完全一致。
·行,列可以<=0如果是0代表不偏移,<0对于行来说代表向上偏移,对于列来说代表向左偏移
·偏移区域的起始单元格一定不在结果区域内
Sub 偏移offset()
Debug.Print Range("a1:d5").Address(0, 0)
' Debug.Print Range("a1:d5").Count
Debug.Print Range("a1:d5").Offset(1, 1).Address(0, 0)
End Sub
3 单元格对象的重设(形状大小):
·单元格区域.resize(行数,列数)重新生成起点单元格区域的行数与列数·
起点单元格一定在结果单元格区域内
Resize属性没有多方向,只有起点单元格区域向下(行),向右(列)重设单元格区域
·行数,列数不能是负数或者零,这点很好理解,不存在行列数为0乃至小于0的单元格区域
Resize属性非常重要,将数组数据一次性写入单元格的时候需要使用该属性来确定数据区域
Sub 重设resize()
Range("a1:d5").Resize(1, 2).Interior.Color = vbYellow '设置单元格的背景色为黄色
End Sub
'offsetresize 综合应用:
'需求:B1单元格出发,通过resize 得到A1:B1
Sub offsetresize()
Range("b1").Offset(0, -1).Resize(1, 2).Interior.Color = vbYellow
End Sub
4 单元格对象的清除
Clear方法:白茫茫一片大地真干净
'Clear 方法:清除单元格对象的一切属性
'不单清除掉了值,而且清除掉了单元格的一切属性归零。单元格对象本身没有变化
Sub clear方法()
Range("k1").CurrentRegion.Clear
End Sub
ClearContents方法:最常用的,仅删除目标区域的值,其他保留。
'ClearContents 方法: 清除单元格对象的值
'仅仅清除了单元格对象的值,对于格式等其他属性全部予以保留
'经常用到的清除目标区域的方法,请重点掌握
Sub clearcontents方法()
Range("k1").CurrentRegion.ClearContents
End Sub
Delete方法:将单元格区域所在删除,从该区域的下方或右边插入空白单元格
'Delete 单元格对象的删除方法
'delete 方法把原有的单元格给干掉了,用插入新的空的单元格来顶替的
Sub delete方法()
Range("k1").CurrentRegion.Delete xlShiftUp '从下向上顶
'默认 xlshifttoleft 从右向左顶
End Sub
'删除空行的实例
Sub 删除空行()
Dim rng As Range, i As Long
Set rng = Range("a1").Parent.UsedRange
'教给大家一个经验,如果有删除行的操作的时候,注意倒着循环
For i = rng.Rows.Count To 1 Step -1
If Range("a" & i) = "" Then
rng.Rows(i).Delete xlShiftUp
End If
Next
End Sub