Excelvbatutial.Excel是最常用的电子表格管理软件。VBA或Visual Basic for Applications,请进一步迈出一步,使您可以轻松实现Excel中的任何内容(退房本教程快速进入VBA)。在今天的教程中,我们将向您展示如何使用VBA中的偏移函数,来选择一个单元格或一个单元格范围。你需要基本熟悉Excel和VBA。

如果你是新手,没问题,你可以试用我们的课程VBA与Excel

什么是偏移函数

OffSet()返回单元格的值,位于您指定的偏移量处。此函数的语法如下所示:

偏移量(小区参考,行,列,高度,宽度)

下面是每个参数的含义

  1. 细胞参考:指单个细胞或细胞范围。
  2. 行数:指定远离给定单元格的行数。如果输入的值为负,则给定的单元格向左移动。
  3. 列:指定远离给定单元格的列数。如果值为负,单元格向上移动。

注意,高度和宽度是可选的。它们用于指定单元格中返回范围的高度和宽度。可以在工作表的任何单元格中插入OffSet()公式,显然,要从中获得偏移量的单元格除外。

将范围()与offset()组合

OffSet属性通常与Range属性一起使用,以指定新位置。让我们看一下这个例子

范围(B1)。抵消(RowOffSet: = 1, ColumnOffset: = 1)。选择

此代码将选择C2。参数RowOffSet用于从单元格B1移动1行。类似地,参数ColumnOffSet用于从单元格B1移动1列。注意,参数必须用逗号分隔。

实现相同结果的一种更简单的方法是使用快捷方法,如下所示

范围(“A1”)。偏移(1,1)。选择。

在这里,我们只指定了行和列偏移的数字。VBA将在内部“知道”,第一个是用于行偏移量的,而第二个是用于列偏移的。如果您想更多地研究Range()函数,可以看看我们关于VBA宏的课程。现在,让我们来看更多的例子。

如何只指定行

可以只指定行而不指定列。你可以这样做。

范围(B1) .Offset (1) .Select

这里我们省略了列参数及其逗号。这段代码只导致从原始单元格位置向下移动1行。它将选择整个行,而不仅仅是单个单元格。

如何只指定列

类似地,可以只指定列并省略行。代码将如下所示:

范围(“B1”)。偏移(,1)。选择

Excel需要逗号必须知道只设置了列偏移量。

如何指定负偏移量

你能猜到怎么做?这很简单。这是代码

范围(“D2”)。偏移(-1,-1)。选择

这使得选择上升1行和从起始位置的1列。这是来自细胞D2,我们向上移动到细胞C1。

如何抵消一系列细胞

也可以为范围指定多个单元格。假设您想要选择或获取一个单元格范围的偏移量

范围(“B1:D4”)。偏移(1,1)。选择

在这里,我们从B1到D4的细胞范围开始。目标是将该全系列细胞抵消1行和1列。新的细胞范围将来自C2至E5。

将活性单元与偏移结合起来

活动单元格指当前选定的单元格。让我们来看看几个涉及活动细胞的例子。下面是从当前选定的单元格中向下移动一个单元格的代码

ActiveCell.Offset .Select (1,0)

将活动单元格与Range()和Offset()相结合

以下代码除了在另一个位置复制/粘贴的右侧之外,还选择一个单元格。

范围(ActiveCell,ActiveCell.offset(0,4))。复制

注意,第一个ActiveCell实例后有一个逗号,Copy实例前有一个双闭括号。现在让我们继续讨论使用OffSet功能来获得所需结果的简单程序。

例1:计算Excel工作表中的行数

Sub CountNumRows() Dim Count1 as Long Count1 = 0 Do Count1 = Count1 + 1 ActiveCell。Offset(1,0).选择Loop Until IsEmpty(ActiveCell。Offset(0,1)) MsgBox "有" Count1 "行"结束子

在这个程序中,我们将Count1声明为一个long类型的变量。Count加1。然后使用OffSet()循环遍历这些行。当遇到空行时,循环终止。变量count1包含总行数,msgbox()显示一个显示总行数的弹出框。

例2:结合Range和OffSet来填充一个偶数从1到100的单元格范围。

Sub prog1() Dim Num Num = 0 For Row = 0 To 9 For Col = 0 To 9 Range(" A1 ")。抵消(行,坳)。值= Num Num = Num + 2下一个Col下一行结束Sub

在该程序中,A1是给定的小区,并且所得范围来自A1至J10。变量NUM初始化为零,每次循环中的值2递增。所得到的细胞范围包含每个偶数,而不从1到100重复。

希望您发现偏移函数有用,现在可以在您自己的程序中使用它。我们只是揭开了冰山一角。还有很多。你可以查看更多的细节这个终极的VBA课程,如果你愿意跳转到高级宏,我们只是正确的课程与Excel先生!

Excel VBA的顶级课程

Excel Macros和VBA为初学者
Bluelime学习方案
4.2 (18)
热&新
解锁Excel VBA和Excel宏
莱拉Gharani
4.7 (26,866)
畅销书
Microsoft Excel Macros和Excel VBA硕士
凯尔尤
4.5 (11679)
畅销书
使用Excel VBA完成Web自动化
丹尼尔强
4.8 (738)
畅销书
Excel VBA宏:超消歧Excel VBA编程
格兰特赌博
4.4 (989)
畅销书
终极Excel VBA.
马克Talbert
4.7 (3,203)
Excel VBA编程 - 完整指南
鲍里斯Paskhaver
4.6 (3736)
Microsoft Excel VBA简介
凯尔尤
4.6 (1,161)
Excel Macros&Excel VBA编程为初学者编程
andreas exadaktylos.
4.5 (856)
收视率最高
Excel与Microsoft Excel VBA用户表单
凯尔尤
4.5 (1,184)

更多Excel VBA课程

Excel VBA学生还学习

赋予你的团队。引领行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求演示