Excel VBA:单元格对象

多种方法引用单元格

Range(“A1”)方式——表示A1单元格
Cells(1,1)方式——表示A1单元格(cells属性返回单元格区域中指定行和列相交的单元格)
Cells(1,“A”)方式——表示A1单元格Cells(2,1)方式——表示A2单元格
[A1]方式——表示A1单元格

注意:①列标不区分大小写 ②VBA中字符用加双引号"",数字和变量无需加双引号""。所以,Cells(1,“A”)方式很好理解了。

多种方法引用单元格区域

Range(“A1:B2”)方式——表示A1到B2的单元格区域,包括4个单元格
[A1:B2]方式——表示A1到B2的单元格区域,包括4个单元格
以下三种方式等同:
Range(Cells(1, 1), Cells(10, 5))
Range(“A1”, “E10”)
Range(Range(“A1”), Range(“E10”))
均表示工作表中A1:E10单元格区域

优缺点讨论:Cells(1,1)缺点是形式不支持引用区域,不支持成员列表;[A1]形式不支持循环,不支持成员列表;Range(“A1”)形式支持循环,支持引用区域,支持自动列出属性,方法等成员。

引用整行或者整列

Range(3:3)——表示引用第三行
Range(2:5)——表示引用第二到第五行
Range(“D:D”)——表示引用D列(D不区分大小写)
Rows(3)——表示引用第三行
Rows(“3”)——表示引用第三行
Rows(“3:5”)——表示引用第三到第五行
Columns(3)——表示引用第三列
Columns(“C”)——表示引用第三列
Columns(“C:D”)——表示引用C到D列

属性

offset
作用:返回Range对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。
语法
Range.Offset(RowOffset, ColumnOffset)

RowOffset:区域偏移的行数(正数、负数或 0(零))。正数表示向下偏移,负数表示向上偏移。默认值是 0。
ColumnOffset:区域偏移的列数(正数、负数或 0(零))。正数表示向右偏移,负数表示向左偏移。默认值是 0。

Resize
语法
Range.Resize(RowSize, ColumnSize)

RowSize:新区域中的行数。如果省略该参数,则该区域中的行数保持不变。
ColumnSize:新区域中的列数。如果省略该参数。则该区域中的列数保持不变。

Range(“a1”).Resizt(3, 2).Select
在这里插入图片描述
End
作用:返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+
↑、End+ ↓、End+ ←或 End+ →。
语法
Range.End(Direction)
Direction:所要移至的方向。(包括以下四种情况)
xlDown 向下
xlToLeft 向左
xlToRight 向右
xlUp 向上

我们一般用end属性获取某列的最后一个非空单元格的行号
Cells(Rows.Count, “A”).End(xlUp).row

Address
作用:返回单元格地址。
MsgBox Range(“a1”).Address
在这里插入图片描述

Value
作用:表示单元格里面的内容,默认属性,可省略

常用方法

Select
相当于我们点住鼠标左键圈选一个单元格区域
Range(“a1:a10”).Select

copy
复制内容到指定目的地的作用。
Range(“a1”).Copy Range(“b1”) ’ 将A1单元格内容复制到B1
Worksheets(1).Range(“a1”).Copy Worksheets(2).Range(“b1”)'将表1中A1单元格内容复制到表2单元格B1中

Union
将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作。
Union(Worksheets(1).Range(“A1:D4”), Worksheets(1).Range(“E5:H8”)).Select
在这里插入图片描述
union方法一般结合find方法,在依次找到特定的单元格区域之后,联合选择然后做统一的操作。

Clear
清除单元格的内容
Sub test()
Range(“a:a”).Clear '清除A列单元格,包括数据内容和格式
Range(“a:a”).ClearContents '如果不想清楚单元格颜色等格式,只清除A列单元格内容用ClearContentsRange(“a:a”).ClearComments '清除批注
Range(“a:a”).ClearFormats’清除格式
End Sub

SpecialCells
在Excel中使用定位对话框可以选中工作表中特定的单元格区域,而在VBA中则使用SpecialCells方法。下面这个例子实现选中含有公式的单元格。

Sub test()
Dim rng As Range
Set rng = Sheet1.Range(“a1:x100”).SpecialCells(xlCellTypeFormulas)'选中A1:X100单元格区域中包含公式的单元格
rng.Select
End Sub
在这里插入图片描述
除了可以选中包含公式的单元格,我们还可以选中含有注释的单元格区域、含有相同格式的单元格区域等等。

上述代码中xlCellTypeFormulas替换为下表中值即可
在这里插入图片描述
我们如果要仅复制筛选后的数据,就可以用
SpecialCells(xlCellTypeVisible).copy

如果判断A1:B10单元格区域若存在空格,则隐藏所在行[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden =True

整理空行工具
Sub s()
row1 = InputBox(“请输入需要整理空行的列(英文)”, “提示信息”)
Range(row1 & “:” & row1).SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
End Sub

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值