range语法

ads

置顶公众号】或【设为星标】及时接收不迷路


VBA在EXCEL中本质上是对于操作对象的操作,是对被操作对象的各种属性和方法的运用,将日常我们需要手工操作或者函数引用的内容,编辑成VBA可以识别的语言,在触发条件下实现自动化运行的过程。下面我们就来介绍几种“RANGE(单元格区域)”时常会用到的操作。

 


1

SELECT属性



英语中SELECT被译作“选择、选定”的意思,也就是我们常说的“选中单元格区域”,下面举几个例子。

 

1.选择连续区域。例如,我们有一段代码如下:

 

Sub 选中单元格()

   Sheets("select").Range("A1:D6").Select

End Sub

 

代码含义:选中《select》工作表的A1:D6单元格区域。

 

 

2.选择一个单元格。如果我们只需要执行选择一个单元格的操作,那可以按下面的写法处理,如下:

 

Sub 选中一个单元格1()

  Range("B1").Select

End Sub

 

Sub 选中一个单元格2()

  [C2].Select

End Sub

 

Sub 选中一个单元格3()

  Cells(3,4).Select

End Sub

 

这里我们给出了三段代码,运行效果如下:

 

 

为什么用了三种方式来写,这里就需要讲到单元格在VBA中的表示方法了。

 

<小知识>

 

在VBA中对于单元格的表达方式主要有三种:RANGE、CELLS、中括号。

 

(1)RANGE:书写方式是在RANGE表达式后的括号中,写出需要被引用的单元格区域,如上面的A1:D6,或者直接写某一个单元格地址A1。注意单元格地址需要用英文状态的双引号括起来才能生效。

(2)中括号:这是一种单元格表达式的简便写法,如:[A1:D6]、[A1],不需要加双引号。

(3)CELLS:它是一种以行列号锁定单元格的方式,语法为CELLS(行号,列号)。它只能选定一个单元格,如上面的CELLS(3,4)等同于RANGE("D3")或者[D3]。如果需要使用CELLS表示一个区域,可以结合RANGE,如RANGE(CELLS(1,1),CELLS(3,4)),就代表引用A1:D3区域。

 

相对于上面两个小节的内容,细心的同学一定可以看到,在我们的代码中有的指定了工作表,如第1小节的代码Sheets("select").Range("A1:D6");有的没有指定工作表,如第2小节的那三段代码,此时我们就要引用一个新的概念:ACTIVESHEET。

 

其实我们在写这两个小节的内容时,建立了两个工作表,如下图:

 

 

在写第1小节的内容时,我们是选中了“select”工作表之后操作的,此时的“select”工作表就是ACTIVESHEET工作表,也就是我们常说的“被选中的工作表”或者“前台显示的工作表”。

  

而当我们的ACTIVESHEET 工作表是“select单元格”工作表时,同学们还“敢不敢”再运行一下“工程:选中单元格”呢?

 

Sub 选中单元格()

   Sheets("select").Range("A1:D6").Select

End Sub

 

作者知道你们都“胆大妄为”,但结果就是代码报错,因为SELECT属性一定要在ACTIVESHEET表中才有效,如果ACTIVESHEET和代码中SHEETS工作表名称不一致,则不能运行。如果代码中没有指定SHEET,那么代码默认只在ACTIVESHEET中运行。

 

3.选择不连续区域。举个例子,代码如下:

 

Sub 选中不连续区域()

  Range("A1:D6, E10, E1:F3").Select

End Sub

 

在VBA中对于选中不连续区域的表达方式,就是用一个逗号间隔开地址,然后再用英文状态下的双引号将它们括起来,这样就可以完成引用。

 

 

4.选择区域的交集部分。举个例子,代码如下:

 

Sub 选中交集区域()

  Range("A1:D6 D1:F3").Select

End Sub

 

在例3中,逗号是联合引用符,那么区域的交集部分,在EXCEL中是使用空格连接的。

 

 

这和我们使用工作表函数的道理是一样的。怎么?你还不知道工作表函数的“交集引用”吗?写法都是一样的,如下图所示:

 

 


2

单元格赋值



“赋值”,顾名思义,其实就是给某一个对象的属性“赋予一个值”,按照赋值的规则,赋予的内容可以是“数值”、“文本”等等。当然在VBA中值的格式有很多,我们可以先易后难,先了解日常使用的,再去考虑深入研究,这是一个很重要的学习方法,“先了解用法,再了解还可以怎么高级的运用!”

 

1.单元格赋值。给一个或者多个单元格赋值的过程,其实很简单。想想我们在使用工作表函数的时候,是不是需要先输入一个“=”,函数才能生效。这个“=”就是给单元格赋值的命令符,代码如下:

 

Sub 赋值1()

  Sheets("单元格赋值").Range("A3") = 6

  Sheets("单元格赋值").Cells(4, 1) = "乘数"

  Sheets("单元格赋值").[A5] = "被乘数"

End Sub

 

 

在代码中,我们依然使用了三种单元格的表示方式,分别给A3、A4、A5单元格进行了赋值,这其中有数值,也有文本,当然文本需要使用英文状态的双引号括起来,这个规则和工作表中函数的写法是一样的。

 

2.跨表引用,计算式结果赋值。我们在工作表“select”中设置了两个数值,现在将两个值的乘积赋值给B3单元格,代码如下:

 

Sub 赋值2()

  Sheets("单元格赋值").Cells(3, 2) = Sheets("select").Range("B2") * Sheets("select").Range("B3")

End Sub

 

 

“select”工作表的B2单元格是4,B3是6,相乘等于24,用“=”号赋值给了“单元格赋值”工作表中的Cells(3,2)单元格(即B3单元格)。就是如此简单,只要了解了代码的表达式写法,就可以写出VBA代码啦~

 

3.工作表函数也能在VBA中使用。如果你要汇总一列数据,是不是马上就会想到SUM函数,其实在VBA中一样可以使用SUM函数。举个例子,代码如下:

 

Sub 赋值3()

  Sheets("单元格赋值").[C1:C10] = 1

  Sheets("单元格赋值").[C11] = Application.WorksheetFunction.Sum(Sheets("单元格赋值").[C1:C10])

End Sub

 

 

给一个区域赋同一个值,再使用SUM工作表函数对这个单元格区域汇总求和,Application.WorksheetFunction就是调用工作表函数的语句。

 

看完文章有没有GET到一些VBA的入门知识呢?

VBA不应该有“初级知识”这种说法,因为高级语句也是由这些基础知识构建起来的,先学基础,再积累思路,相信同学们一定可以自己写出代码。


1元秒杀以及特价课程推荐



最后编辑于:2024/1/22 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com