Excelvbafind.正如您可能怀疑的那样,Excel“查找”方法可帮助您在电子表格中找到数据。理论上,它与使用环路相同的方式,但更有效。我们通常使用查找方法来搜索一个范围内的数据位,然后我们可以提取或采取行动。这种方法在具有大量分散数据的大型电子表格中特别有用。

在本教程中,我们将了解该方法,它是如何工作的,其应用程序和一些示例。有关查找方法和其他高级VBA应用程序的更多详细信息,请查看此在Excel中使用Visual Basic的在线课程

什么是查找方法?

在工作表中查找数据的传统方法是使用循环。虽然有效,但这种方法非常耗时,效率低下,特别是在大数据集中。循环的本质意味着Excel必须反复通过相同的数据来查找所需信息。

发现方法实现了类似的目标更有效。由于它是仅设计用于搜索数据的特定功能,因此它完全跳过循环部分。此外,它还为您提供了很多控制,以及寻找数据的内容。最终结果是远远优异的搜索方法,其使得可以根据许多不同参数搜索数据。

句法

查找方法可以写如下:

找(什么,之后,寻找,lookat,searchOrder,searchptirection,matchcase,matchbyte,searchformat

看起来很复杂!

让我们把它分成较小的块:

1什么(必填):唯一必需的参数,什么告诉Excel实际寻找什么。这可以是任何 - 字符串,整数等)。

句法:表达.Find(什么:=“x”)

2.之后(可选):这指定了单元格搜索是开始的。这必须始终是单个细胞;你不能在这里使用一个范围。如果是参数未指定,搜索从单元格范围的左上角开始。

句法:表达.find(什么:=“x”,之后:= ActiveCell)

在这里,我们使用“ActiveCell”作为我们的起始小区,但您还可以指定特定的单元格。

Excel编程新的?这门课程将教你企业专业人士的Excel编程

3.看(可选):这告诉Excel要查看的类型类型,例如XLFormulas。

句法:表达.find(什么:=“x”,之后:= ActiveCell,Lookin:= XLFormulas)

4. Lookat(可选):这告诉Excel是否查看整套数据,或者只有一个选定的部分。它可以采取两个值:XLWhole.XLPart.

句法表达.find(什么:=“x”,之后:= ActiveCell,Lookin:= XLFormulas,Lookat:= XLPart

5. SearchOrder(可选):您可以选择询问Excel是否按行或列搜索,即xlbyrows.或者xlbycolumns.

句法:表达.find(什么:=“x”,之后:= ActiveCell,Lookin:= XLFormulas,Lookat:= XLPart,SearchOrder:= XLBOWS)

6.搜索条目(可选):这用于指定Excel是否应该搜索下一个或以前的匹配值。你可以使用XLNext.(用于搜索下一个匹配)或xlprevious.(搜索以前的比赛)。

句法:表达.find(什么:=“x”,之后:= ActiveCell,Lookin:XLFormulas,Lookat:= XLPart,SearchOrder:= XLBOWS,searchptirection:= xlnext

7. Matchcase(可选):自我解释;这告诉Excel是否应该在执行搜索时匹配情况。默认值是错误的。

句法:表达.find(什么:=“x”,之后:= ActiveCell,Lookin:XLFormulas,Lookat:= XLPart,SearchOrder:= XLByrows,SearchDirection:= XLNext,matchcase:= true

8. MatchByte(可选):如果您已安装双型字符集,则使用此操作(DBCS)。了解DBC超出本教程的范围。与匹配晶一样,这也可以具有两个值:true或false,默认为false。

句法:表达.find(什么:=“x”,之后:= ActiveCell,Lookin:XLFormulas,Lookat:= XLPart,SearchOrder:= XLByrows,SearchDirection:= XLNext,MatchCase:= True,马尔塔维特:=假

如果使用Excel的内置查找和替换功能(Ctrl + F)录制宏,则匹配参数通常不是查找范围的一部分。

9. SearchFormat(可选):当要选择具有指定属性的单元格时,使用此参数。它与FindFormat属性结合使用。说,您有一个特定小区(或小区范围)在斜体中的单元格列表。您可以使用FindFormat属性并将其设置为斜体。如果您稍后使用查找中的SearchFormat参数,它将选择斜体单元格。

searchformat可以有两个值:true和false。默认为false。

句法:表达.find(什么:=“X”,之后:= ActiveCell,Lookin:XLFormulas,Lookat:= XLPart,SearchOrder:= XLByrows,SearchDirection:= XLNext,MatchCase:= True,MarchByte:= False,SearchForment:= False)

查找方法示例:

假设我们有一个电子表格,第一列填充了算术进展:

1,4,7,10,13,16,19 ......。

填充A1至A65000的整个列。我们希望在这一进展中找到特定价值,例如,24652。

为此,我们可以输入以下公式:

cell.find(什么:=“24652”,之后:= ActiveCell,Lookin:= XLFormulas,Lookat:= _
XLPART,SearchOrder:= XLByrows,SearchDirection:= XLnext,匹配套:= FALSE _
,searchformat:= false).Activate

在运行宏时立即找到我们所需的Cell - A8218:

我们输入了上面的所有参数,以用于说明目的。在您的实际公式中,您只能使用要搜索的值(“什么:=”)。

而不是使用“单元格”。在开始时,您还可以指定特定范围。

要查看不同的搜索选项如何影响Find方法语法,请尝试使用Excel内置查找功能(Ctrl + F)录制宏。

您也可以使用。找下一个和 。findPrevious.搜索下一个/透过匹配值。请记住,当您使用查找方法一次时,Excel存储您输入的所有参数('searchformat','matchcase'等)。因此,如果将“匹配晶晶”设置为true,则对于后续搜索,它仍然是正确的,直到您显式将其更改为false。

想要使用宏,但讨厌编程?试试这个excel vba和宏的非编码方法

应用程序

您将使用查找方法在VBA程序中查找和/或替换值数据。其主要申请是:

最重要的是,查找方法充当使用循环寻找数据的更有效的替代方案。性能提升非常重要 - 使用循环在我们的示例中的上面概述的那种搜索将需要20-120毫秒的搜索。同样的发现只需不到5毫秒。

如果你习惯使用循环,你会发现一个值得(更容易使用)盟友。如果您是Find方法和VBA编程的新手,您可以转向Excel VBA和Macros课程与MREXCEL

您使用Excel VBA宏的个人最喜欢的提示是什么?在下面与我们分享他们!

Excel VBA的顶级课程

解锁Excel VBA和Excel宏
Leila Gharani.
4.6 (27,629)
畅销书
Microsoft Excel Macros和Excel VBA硕士
凯尔·佩
4.6 (12,156)
畅销书
Excel Macros&Excel VBA编程为初学者编程
andreas exadaktylos.
4.5 (881)
Excel VBA宏:超消歧Excel VBA编程
格兰特赌博
4.5 (1,007)
畅销书
MIS培训 - authad Excel +宏+访问+ SQL
喜人·德汉尔
4.3 (372)
终极Excel VBA.
马克塔尔伯特
4.6 (3,278)
Excel VBA编程 - 完整指南
Boris Paskhaver.
4.7 (3,803)
使用Excel VBA完成Web自动化
丹尼尔强
4.6 (756)
畅销书
Microsoft Excel VBA简介
凯尔·佩
4.7 (1,187)
Excel与Microsoft Excel VBA用户表单
凯尔·佩
4.6 (1,218)

更多Excel VBA课程

Excel VBA学生还学习

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

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示