如何使用VBA范围偏移(11种方法)

  • Share This
Hugh West

如果你正在寻找一些最简单的方法来使用 VBA 那么你会发现这篇文章是值得一读的。 让我们开始讨论使用 "范围偏移 "的方法。 VBA 范围偏移。

下载工作手册

VBA范围偏移.xlsm

使用VBA范围偏移的11种方法

我有以下数据表,其中包含了某学院的一些学生信息。 利用这个数据集,我将解释如何使用 VBA 范围偏移。

为此目的,我使用了 微软Excel 365 版本,你可以根据你的方便使用任何其他版本。

方法一:通过使用VBA范围选择单元格

在这里,我们将选择一个包含名称的单元格 丹尼尔-笛福。 为此目的,我们将使用 范围功能 VBA .

步骤-01 :

转到 开发商 标签>>。 视觉基础 选项

然后,在 Visual Basic编辑器 将打开。

转到 插入 标签>>。 模块 选项

在这之后,一个 模块 将被创建。

步骤-02 :

➤ 写出以下代码

 Sub SelectCell() Range("B8").Select End Sub 

它将选择单元格 B8 .

➤按 F5

结果 :

通过这种方式,你将得到包含以下内容的单元格 丹尼尔-笛福 选定。

阅读更多。 如何在Excel中使用VBA的范围对象

方法二:使用VBA范围选择一组连续的单元格

你可以选择一个连续的单元格范围,如 学生姓名 栏和 结果 通过这种方法,在下表中列出了一列。

步骤-01 :

➤关注 步骤-01 方法一

 Sub ContiguousCells() Range("B5:C10").Select End Sub 

它将从下列单元格中选择 B5 C10 .

➤按 F5

结果 :

之后,你会在 B栏 C列 选定。

方法三:使用VBA范围选择一组不相邻的单元格

假设,你想选择名为 威廉-戴维 迈克尔-安东尼 包括其各自的 电子邮件地址 要选择这些不协调的细胞,你可以按照这个方法。

步骤-01 :

➤关注 步骤-01 方法一

 Sub nonContiguous() Range("B6,D6,B9,D9").Select End Sub 

它将选择单元格 B6 , D6 , B9, D9 .

➤按 F5

结果 :

然后,你会得到包含学生姓名的单元格 威廉-戴维 , 迈克尔-安东尼 和他们各自的 电子邮件地址 选定。

方法四:使用VBA范围选择一组不相邻的单元格和一个范围

你可以通过这种方法同时选择一个单元格区域和一些不相邻的单元格。

步骤-01 :

➤关注 步骤-01 方法一

 Sub nonContiguouswithrange() Range("B5:B10,D6,D10").Select End Sub 

它将选择范围内的单元格 B5:B10 和另外两个细胞 D6 , D10 .

➤按 F5

结果 :

之后,你会得到列中的单元格 学生姓名 和两个 电子邮件ID 威廉-戴维 唐纳德-保罗 选定。

方法-5:通过使用VBA范围偏移来选择一个范围

你可以选择一个单元格的范围,在 学生姓名栏 通过使用 OFFSET功能 .

步骤-01 :

➤关注 步骤-01 方法一

 Sub selectrangeoffset() Range("A1:A6").Offset(4, 1).Select End Sub 

起初。 范围("A1:A6") 将选择范围 A1:A6 ,然后 偏移量(4, 1) 将从单元格中向下移动4行 A1 之后,范围内相同数量的单元格在 A1:A6 将从这里选择。

➤按 F5

结果 :

通过这种方式,你将选择列 学生姓名 .

方法-6:VBA范围偏移为负数

你可以选择 电子邮件地址栏 遵循这个方法。

步骤-01 :

➤关注 步骤-01 方法一

 Sub negativerangeoffset() Range("F11:F16").Offset(-6, -2).Select End Sub 

起初。 范围("F11:F16") 将选择范围 F11:F16 ,然后 偏移(-6, -2) 将从单元格中向上移动6行 F11 之后,范围内相同数量的单元格在 F11:F16 将从这里选择。

➤按 F5

结果 :

之后,你就可以选择列 电子邮件地址 .

类似的阅读。

  • Excel中每个单元格的VBA(3种方法)
  • 如何在Excel中计算文本(7个简单技巧)

方法-7:选择一个与活动单元格有关的范围

在这里,我们有一个活跃的细胞(细胞 A1 ),关于这个单元格,我们将用这种方法选择数据范围。

步骤-01 :

➤关注 步骤-01 方法一

 Sub actvcell() Range(activecell.Offset(4, 1), activecell.Offset(9, 3)) .Select End Sub 

在这里。 活性细胞 A1

第一部分 activecell.Offset(4, 1) 将选择一个向下4行,向右1列的单元格。 A1 和第二部分 activecell.Offset(9, 3) 将选择一个从单元格向下9行,向右3列的单元格 A1 .

最后,这两个单元格之间的所有单元格将被选中。

➤按 F5

结果 :

然后,你将能够选择整个数据范围。

方法8:复制一个范围

如果你想复制一个单元格的范围,那么你可以按照这个方法。

步骤-01 :

➤关注 步骤-01 方法一

 Sub copyrangeoffset() Range("A1:A6").Offset(4, 1).Copy End Sub 

起初。 范围("A1:A6") 将选择范围 A1:A6 ,然后 偏移量(4, 1) 将从单元格中向下移动4行 A1 之后,范围内相同数量的单元格在 A1:A6 将从这里选择。

最后,它将复制范围内的值 B5:B10 .

➤按 F5

结果 :

之后,你就可以在数据范围内复制 学生姓名栏 .

方法-9:删除一个范围

在这里,我们将展示如何通过使用以下方法来删除一个数据范围 VBA 代码。

步骤-01 :

➤关注 步骤-01 方法一

 Sub dltrangeoffset() Range("F11:F17").Offset(-7, -2).Delete End Sub 

首先。 范围("F11:F17") 将选择范围 F11:F17 ,然后 偏移量(-7, -2) 将从单元格中向上移动7行 F11 之后,范围内相同数量的单元格在 F11:F17 将从这里选择。

最后,它将删除范围 D4:D10 .

➤按 F5

结果 :

通过这种方式,你将把数据范围复制到 电子邮件地址栏 .

方法-10:使用VBA范围偏移来输入一个值

在这里,我们有一个空单元格(为了解释这个方法,我们已经删除了这个单元格中的值)。 学生姓名栏 而我们想在其中填入 约瑟夫-迈克尔 通过使用一个 VBA 代码,我们可以很容易地输入这个值。

步骤-01 :

➤关注 步骤-01 方法一

 Sub valuerangeoffset() Range("A1").Offset(6, 1).Value = "Joseph Michael" End Sub 

首先。 范围("A1") 将选择单元格 A1 ,然后 偏移量(6, 1) 将从单元格中向下移动6行 A1 和1列到右边。 之后,单元格 B7 将被选中,最后,它将输入值 "约瑟夫-迈克尔" 在这个细胞中。

➤按 F5

结果 :

通过这种方式,你将获得 约瑟夫-迈克尔 在细胞中 B7 .

方法-11:使用VBA范围偏移来获得输出

假设,你想写 通过 未能对应 到学生的名字,取决于 结果栏 其中 通过 失败 在括号中写了一个子串。 要在这个子串中找到 结果栏 并把它写在 及格/不及格栏 按照这个方法。

步骤-01 :

➤关注 步骤-01 方法一

 Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> 0 Then cell.Offset(0, 1).value = " Passed" Else cell.Offset(0, 1).value = "Failed" End If Next cell End Sub 

这里,单元格范围 C5:C10 被选中的是 范围("C5:C10") 这就是 结果栏

InStr(cell. value, "Pass")> 0 是指数字大于零的情况(当单元格中含有 "通过" ),那么下面一行将继续进行,并在相邻的单元格中给出输出结果为 通过 在这里,相邻的单元格将被选中,由 cell.Offset(0, 1) ,这意味着它将从输入单元格向右移动1列。

如果条件变成假的,意味着一个单元格不包含任何 "通过" 那么,下面的线 其他的 将执行,并在相邻的单元格中给出输出值为 失败 .

这个循环将对每个单元格继续进行。

➤按 F5

结果 :

然后,你将得到输出 通过或未通过 及格/不及格 列。

练习部分

为了方便自己的练习,我们提供了一个 实践 的工作表中,像下面这样,在一个名为 实践 .请你自己去做。

总结

在这篇文章中,我试图涵盖最简单的方法来使用 VBA 希望你会发现它很有用。 如果你有任何建议或问题,欢迎与我们分享。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.