VBA查找功能|如何使用VBA查找功能? (例子)
Excel VBA查找
当我们在正常工作表中使用“查找”时,我们按键盘快捷键CTRL + F并键入我们需要查找的数据,如果不需要的值我们转到下一个匹配项,如果有很多此类匹配项,则是一项繁琐的任务,但是当我们在VBA中使用FIND,它为我们完成任务并为我们提供精确匹配,它需要三个参数,一个是要查找的内容,在哪里查找和在哪里查看。
在转向VBA并开始在宏中使用查找功能之前,我们需要首先学习什么是excel中的查找功能。在普通Excel中,在“编辑”组下的“主页”选项卡中,我们可以找到一个查找功能,该功能用于在单元格区域或整个工作表中查找字符串或值。
当我们点击它时,我们有两个选择;
一个很容易找到,
我们可以看到它还有一个选项模式,可以打开另一个功能。
它执行具有四个约束的查找算法,即“查找内容”,“内部查找”,“搜索”和“查找”。
excel中的第二个选项是“查找并替换”,当我们找到一个字符串时会使用它,但是用其他任何值替换它时,
查找功能语法
上面我们已经学习了基本Excel中的“查找”。在VBA中,我们手动编写代码,但功能与普通excel相同。首先,让我们看一下语法。
Expression.Find(What,lookin,....)
如果使用excel函数找到了我们要查找的值,它将返回该值所在的单元格;如果找不到该值,则该函数的对象将设置为空。
宏中的表达式是定义的范围,例如范围1或范围2。什么是我们要搜索特定值的关键字? Lookin是我们要搜索的关键字,它是注释,公式或字符串。同样,Find函数中还有其他可选约束。唯一必需的字段是我们要搜索的值。
基本上,VBA发现Excel具有一个必需的参数,即我们要搜索的值。其余约束是可选的,并且find函数中有许多约束。查找功能类似于excel中的查找功能。
查找功能的参数是单元格的范围。就像我们要在哪个范围中找到一个值。它可以是几列或几个单元格,也可以是整个工作表。
例子
您可以在此处下载此VBA FIND功能Excel模板– VBA FIND功能Excel模板范例#1
假设我们的数据具有以下值
我们将尝试在同一数据中找到“亚兰”。
- 要编写VBA代码,必须在excel中启用“开发人员”标签,以便能够编写VBA代码。
- 我们通过编写以下代码开始编写代码,如下所示,
昏暗的FindS作为字符串
昏暗范围
FindS = InputBox(“输入要搜索的值”)
带表(“ Sheet1”)。范围(“ A:A”)
- 该示例是赋予子函数的函数名称。
- Find是我们希望我们要输入的用户进行搜索的字符串。
- Rng是我们对该范围采用的变量。
- 现在,我们要求用户输入如下屏幕截图所示的值,
- 现在,我们将在模块中定义find函数。
- 该函数查找用户在给定范围内输入的值。
- 现在,我们通过以下参数关闭该函数。
- 现在,如果我们首先运行我们的代码,它将要求用户提示输入值。
- 代码完成后,它会将单元格返回到找到数据的位置。
范例#2
在上面的示例中,有四个唯一名称,但是如果数据中有多个名称(例如考虑以下数据),该怎么办?
我们可以看到,在以上数据中,名称Aran重复了两次。如果excel必须找到名称Aran,它将在A2单元格中找到它并停止,但是还有另一个与A6单元格中的A2相似的值。如何获取该价值?这是帮助中Find(What,After)的语法。
在定义单元格之后,我们要在该单元格后面搜索数据。
让我们为上述数据编写代码。
- 始终记得从选项中启用开发人员选项卡,然后从excel中启用自定义功能区,以便能够在VBA中编写代码。
- 在VBA中,我们获得了Microsoft excel对象,这是我们编写代码的模块。
- 以前我们在工作表1上工作,现在我们在工作表2上工作,因此为另一个模块选择工作表2并显示空白页面。
- 现在,首先将函数定义为SUB Sample2(),然后按Enter键,开始编写代码。
- 现在我们已经定义了函数,我们将开始进入定义变量的主要部分。
- 定义“查找”变量应具有的内容,
- 选择我们正在处理的工作表,在此示例中为工作表2,
- 现在,无论用户在A2单元格后输入什么内容,我们都将查找文本,因此我们如下定义了find函数,
- 现在,我们以with和if条件结束来关闭代码。
上面的代码所做的是在单元格A2之后搜索字符串,并在找到该单元格的地方返回该单元格。
要记住的事情
- 首先,我们需要启用开发人员标签才能使用VBA。
- 我们需要找到什么具体值?
- 如果找不到该值,则该函数的对象将设置为nothing。