第一章 Range(单元格)对象 技巧1 单元格的引用方法

首先,Range对象可以代表一个单元格、一行/列单元格、连续/非连续单元格区域、多个工作表上的一组单元格。

其次,只要在Excel程序内进行操作,都需要将其表示为一个Range对象,随后使用Range对象的方法和属性。

技巧1 单元格的引用方法

1-1 使用Range属性

VBA中可以使用Range属性返回单元格或单元格区域

#1  sub RngSelect()
#2      Sheet1!.range("A3:F6,B1:C5").Select
#3  end sub

代码解析:

RngSelect过程使用Select方法选中A3:F6,B1:C5单元格区域。

在单元格区域引用中,空格"A3:F6 B1:C5"表示两个操作区域的交叉区域

1-2 使用Cell属性
Sub cell()
​
    Dim icell As Integer    #Dim 变量名 As 数据类型,用于声明变量并分配存储空间
    For icell = 1 To 100
        Sheet2.Cells(icell, 1).Value = icell #1到100行,第一列单元格
        Next
        
End Sub

代码解析:

Cell过程使用For...Next语句为工作表中的A1:A100单元格区域填入序号。

Cells属性指定单元格区域中的单元格,语法如下:

Cells(RowIndex, ColumnIndex)

参数RowIndex是可选的,表示引用区域中的行序号。

参数ColumnIndex是可选的,表示引用区域中的列序号。

如果缺省参数,Cells属性返回引用对象的所有单元格。

Cells属性的参数可以使用变量,因此经常应用于在单元格区域中循环。

Dim语句用于在代码中定义所有变量,如果担心自己忘记定义变量,可以在代码板块的最前面输入:Option Explicit,如果不用AS+数据类型,就会默认为Variant类型

那有哪些数据类型呢?

1-3 使用快捷记号

在VBA中可以将A1引用样式或命名区域名称使用方括号括起来,作为Range属性的快捷方式,这样就不必键入单词“Range”或使用引号,如下面的代码所示。

#001  Sub Fastmark()
#002      [A1:A5] = 2
#003      [Fast] = 4    #将已命名为fast的单元格赋值为4
#004  End Sub

代码解析:

Fastmark过程使用快捷记号为单元格区域赋值。

第2行代码使用快捷记号将活动工作表中的A1:A5单元格赋值为2。

第3行代码将工作簿中已命名为“Fast”的单元格区域赋值为4。

1-4 使用OFFSET属性

可以使用Range对象的Offset属性返回一个基于引用的Range对象的单元格区域,如下面的代码所示。

#001  Sub Offset()
#002      Sheet3.Range("A1:C3").Offset(3, 3).Select
#003  End Sub

代码解析:

Offset过程使用Range对象的Offset属性选中A1:A3单元格偏移三行三列后的区域。

应用于Range对象的Offset属性语法如下:

expression.Offset(RowOffset, ColumnOffset)

参数expression是必需的,该表达式返回一个Range对象。

参数RowOffset是可选的,区域偏移的行数(正值、负值或 0(零))。正值表示向下偏移,负值表示向上偏移,默认值为 0。

参数ColumnOffset是可选的,区域偏移的列数(正值、负值或 0(零))。正值表示向右偏移,负值表示向左偏移,默认值为 0。

1-5 使用Resize属性

使用Range对象的Resize属性调整指定区域的大小,并返回调整大小后的单元格区域,如下面的代码所示。

#001  Sub Resize()
#002      Sheet4.Range("A1").Resize(3, 3).Select
#003  End Sub

代码解析:

Resize过程使用Range对象的Resize属性选中A1单元格扩展为三行三列后的区域。

Resize属性的语法如下:

expression.Resize(RowSize, ColumnSize)

参数expression是必需的,返回要调整大小的Range 对象

参数RowSize是可选的,新区域中的行数。如果省略该参数,则该区域中的行数保持不变。

参数ColumnSize是可选的,新区域中的列数。如果省略该参数。则该区域中的列数保持不变。

1-6 使用Union方法

使用Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,如下面的代码所示。

#001  Sub UnSelect()
#002      Union(Sheet5.Range("A1:D4"), Sheet5.Range("E5:H8")).Select
#003  End Sub

代码解析:

UnSelect过程选择单元格A1:D4和E5:H8所组成的区域。Union方法返回两个或多个区域的合并区域,语法如下:

expression.Union(Arg1, Arg2, ...)

其中参数expression是可选的,返回一个Application对象。

参数Arg1, Arg2, ...是必需的,至少指定两个Range对象。

1-7 使用usedRange属性

使用UsedRange属性返回指定工作表上已使用单元格组成的区域

#001  Sub UseSelect()
#002     Sheet6.UsedRange.Select
#003  End Sub

代码解析:

UseSelect过程使用UsedRange属性选择工作表上已使用单元格组成的区域,包括空单元格。如工作表中已使用A1单元格和D8单元格,运行UseSelect过程将选择A1到D8单元格区域。

1-8 使用CurrentRegion属性

使用CurrentRegion属性返回指定工作表上当前的区域,如下面的代码所示。

#001  Sub CurrentSelect()
#002      Sheet7.Range("A5").CurrentRegion.Select
#003  End Sub

代码解析:

CurrentSelect过程使用CurrentRegion属性选择工作表上A5单元格当前的区域,当前区域是一个边缘是任意空行和空列组合成的范围

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值