首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA查找文本并返回行号(循环)

Excel VBA是一种用于自动化Excel操作的编程语言。在Excel中查找文本并返回行号可以通过VBA编写一个循环来实现。

首先,我们需要定义一个函数,该函数接受两个参数:要查找的文本和要查找的范围。然后,我们可以使用循环来遍历范围中的每一行,检查每一行是否包含要查找的文本。如果找到匹配的文本,我们可以返回该行的行号。

以下是一个示例代码:

代码语言:txt
复制
Function FindTextAndReturnRow(searchText As String, searchRange As Range) As Long
    Dim cell As Range
    For Each cell In searchRange
        If InStr(1, cell.Value, searchText, vbTextCompare) > 0 Then
            FindTextAndReturnRow = cell.Row
            Exit Function
        End If
    Next cell
    FindTextAndReturnRow = -1 ' 如果未找到匹配的文本,则返回-1
End Function

在上述代码中,我们使用了InStr函数来检查每个单元格的值是否包含要查找的文本。如果找到匹配的文本,我们使用cell.Row来获取该单元格所在的行号,并将其作为函数的返回值。

要在Excel中使用这个函数,可以按照以下步骤操作:

  1. 打开Excel文件并按下Alt + F11打开VBA编辑器。
  2. 在VBA编辑器中,选择要添加代码的工作簿。
  3. 在菜单栏中选择插入->模块,添加一个新的模块。
  4. 在新的模块中,粘贴上述代码。
  5. 保存并关闭VBA编辑器。

现在,您可以在Excel中使用FindTextAndReturnRow函数来查找文本并返回行号。例如,可以在一个单元格中输入以下公式:

代码语言:txt
复制
=FindTextAndReturnRow("要查找的文本", A1:A10)

这将在范围A1:A10中查找文本"要查找的文本",并返回匹配的行号。

腾讯云提供了一系列云计算相关的产品和服务,其中包括云服务器、云数据库、云存储等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA实用小程序63: 查找返回与指定属性匹配的所有单元格

本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。...该函数接受单元格对象、代表该对象属性的字符串和属性值作为参数,返回满足属性值的所有单元格。...图1 下面使用FindCells函数查找选择所有红色背景色的单元格,代码如下: Sub UseFindCellsExample() FindCells(ActiveSheet.UsedRange...3.参数calltype,必需,一个vbCallType型的常量,代表被调用的过程的类型,可以是vbGet(返回属性)、vbLet(修改属性)、vbMethod(执行方法)、vbSet(设置对象)。...的背景色的值,可以使用下面的代码: Sub test() MsgBox CallByName(ActiveCell.Interior,"Colorindex", VbGet) End Sub 返回

1.5K10
  • Excel中的VBA编程「建议收藏」

    目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错。而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作。...1、以Excel 2007为例,如果要进行VBA编程,需要启用“开发工具” 选项。在Excel 选项对话框中勾选【在功能区显示“开发工具“选项卡】复选框。...并在该模块中添加一个名为Test的函数,如下所示: 在Sub 和End Sub间添加函数体,保存。注意一定要将Excel文件保存为启用宏的工作薄(*.xlsm)格式。...List = List + 1 Loop 10、实现单元格中内容换行的字符 Chr(10) 11、检测文件是否存在 Dir(完整路径的文件名) '文件存在则返回文件名,不存在则返回为空 12...、从B列的最后一个单元格往上查找返回遇到的第一个非空单元格所在的行号 Range("B65536").End(xlUp).Row 13、从字符串“100/200″中取出”200″字符串 Split

    5K20

    VBA掌握循环结构,包你效率提高500倍

    这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。 1.认识VBA:什么是VBA?...在「单元格B2」输入不同的行号,点击「显示答案」按钮,计算「F列」和「H列」对应行号的乘积,并将每个乘积结果加上公共值「单元格B4」的50,将最终结果显示在相应的单元格。...其实,上述案例是我之前部门同事工作的简化版,他经常要面对机械重复、枯燥乏味的Excel表格操作。...1.for循环 案例:不输入题号,仅点击1次「显示答案」按钮,所有题目答案自动计算后显示在「J列」 我们来分析案例(仅以10道题目来分析) 我们观察发现:行号是变化的,而且是「正向递增加1」的规律。...(3)读取第3句「循环结束」代码「Next x」 此时,「变量 x = 2」 (4)程序回到第1句读取「循环开始」语句「For x = 1 To 10 Step 1」 我们可以看到此时程序自动返回循环开始

    28630

    VBA掌握循环结构,包你效率提高500倍

    image.png 这是系列免费教程《Excel VBA:办公自动化》,还是老规矩,看看我们走到哪里了。 1.认识VBA:什么是VBA?...在「单元格B2」输入不同的行号,点击「显示答案」按钮,计算「F列」和「H列」对应行号的乘积,并将每个乘积结果加上公共值「单元格B4」的50,将最终结果显示在相应的单元格。...其实,上述案例是我之前部门同事工作的简化版,他经常要面对机械重复、枯燥乏味的Excel表格操作。...行号是变化的,而且是「正向递增加1」的规律。...我们可以看到此时程序自动返回循环开始」的地方,由于此时「变量 x = 2」仍然符合「X 从 1 变为 10 每次增加1」这个区间,因此程序接着运行,一直等到「变量 x = 11」的时候,程序会跳出循环

    1.6K00

    Excel VBA编程教程(基础一)

    Excel VBA 对象 我们学习 VBA 的最终目的是操纵 Excel,完成一些特定的目标。其中,操纵 Excel 就是通过 Excel VBA 对象完成的。...在示例中,Cells() 就是一个 Excel VBA 对象,表示一个单元格,提供行号和列号指定单元格。 程序运行结构 接下来是程序结构中最核心的部分,也是最有意思的部分,程序运行结构。...在程序开始,可以声明一个变量,指定变量的类型(数字、文本、逻辑值等),给变量赋值。在程序其他地方,就可以用该变量,使其存储的值参与运算。...VBA 运算符可以分为以下 6 类: 赋值运算符 算数运算符 比较运算符 逻辑运算符 连接运算符 其他运算符 VBA 中的连接运算符用于连接 2 个或多个文本。...) 将两行代码放置在一行 比较运算符 比较运算符,比较提供的两个变量,如果符合比较条件,返回 True,否则,返回 False。

    12.1K22

    常用功能加载宏——快速定位合并单元格

    Excel表格里,合并单元格会给使用过程带来很多麻烦,但是有时候为了排版好看,又需要用到合并的功能。 特别是有时候从外部收集到的表格,总有人喜欢使用合并单元格!...让我们看看用VBA如何来实现一个快速定位合并单元格的功能,效果: ?...<button id="rbbtnUnMergeRange" label="取消合并" supertip="取消单元格合并,<em>并</em>填充<em>文本</em>" onAction="rbbtnUnMergeRange" imageMso...而这个变化,其实只要选择的单元格中含有合并单元格就会出现,所以根据这个特性,我们去查找VBA中对应的这种属性,其实就是MergeCells属性,点击F1查看官方文档: 如果区域内包含合并单元格,此属性的值为...Selection.MergeCells 如果选中的是合并单元格,返回True 如果选中的不含合并单元格,返回False 如果选中的单元格中,既有合并单元格、又有正常的非合并单元格,返回Null 根据返回

    1.7K20

    VBA变量5年踩坑吐血精华总结

    image.png 这是《Excel VBA:办公自动化》教程的第3节,介绍变量。...bottom(最小值)和top(最大值)之间的随机数,且每次Excel编辑后该公式都会自动刷新返回的随机数; 我们一起思考一下,这样一个需求用第02篇(todo文章传输门)分享的能够实现吗?...image.png 我们观察发现:行号是变化的,而且是「正向递增加1」的规律。 在VBA中,我们将这种根据需要能够随时变化的称为变量。...中寻找单元格F1的值为 28,单元格H1的值为30,计算二者之间的值 image.png (6)最后,将二者的乘积赋值给「单元格F1」,执行值写入操作 image.png 通过,以上我们使用...比如:sub和end sub表示程序的开始和结束;for表示循环;while表示循环..... (4)VBA大小写不敏感 比如:定义变量Aa = 1 和变量 aA = 10,我们人可能认为两个变量不一样

    1.7K00

    Excel宏教程 (宏的介绍与基本使用)

    除此之外,使用 VBA语言还有如下优点:1、VBA是一种通用程序语言,通过它不仅可以共享Microsoft相关的各种软件(如excel、 word、access)……,而且随着其它的一些软件(如大名鼎鼎的...AutoCAD2000)等对VBA的支持,这些软件也已进入到了VBA的控制范 围;2、可以将用VBA编写的程序复制到Visual Basic中调试运行,从而实现用Visual Basic来控制有关的应用程序...利用Rows、Column可以获得区域中第一块的第一行行号、第一列列号,所得值均以十进制数表示。...$A$1:$A$6)” 5、避免循环引用 在上述公式赋值过程中,应避免在公式中引用被赋值的单元格,防止循环引用错误。...6、添加批注 可按如下方法格给单元格添加批注: Dim 批注文本 As String 批注文本=”批注示例” ‘准备批注文本 ActiveCell.AddComment ‘添加批注 ActiveCell.Comment.Text

    6.4K10

    文科生也能学会的Excel VBA 宏编程入门(三)——合并文件

    虽然复制粘贴大法好,但如果让你汇总几十人填报的个人信息做成汇总表格,估计你也膜不动了。因此,这一次我们就通过VBA程序完成这个任务,从此妈妈再也不担心我数数到头秃。...程序基本思路 将要合并的Excel文件放到同一个文件夹中; 在文件夹中新建一个Excel文件用于汇总运行VBA程序; 通过VBA程序获取这个文件夹中所有文件的路径; 依次通过程序自动打开各个文件,并将数据复制粘贴到汇总表中...文件并不保存,用True就是关闭保存 End If fileName = Dir '这里不给Dir函数传参数会自动使用上面传过的参数,返回符合要求的下一个文件路径...Dir函数会按文件在文件夹中的实际排序依次返回这两个文件的文件名,也是说你第一次调用Dir("D:\Sync\文档\合并文件\*.xlsx")的时候返回1.xlsx,后面直接调用Dir会返回2.xlsx...获取最后一行行号的方法有很多,各有优缺点,可以参考这篇文章。 在用于汇总的Excel文件里点击绿色小三角运行宏,或者点击【宏】找到这个宏执行都可以运行这段程序。

    3.6K30

    简单的Excel VBA编程问题解答——完美Excel第183周小结

    IIf函数评估条件,如果为True,则返回一个值;如果为False,则返回另一个值。 9.如何确保Do... Loop语句中的语句至少执行一次? 仅当条件置于循环末尾时,才能保证语句至少执行一次。...Next循环中放入多少条Exit For语句? 没有限制。 12.Function过程与Sub过程有何不同? Function过程会向程序返回一个值,而Sub过程则不会。...19.哪两个函数用于搜索文本(在另一个字符串中查找一个字符串)? InStr函数和InStrRev函数。 20.如何转换字符串,以使每个单词的首字母大写,而所有其他字母小写?...完美Excel微信公众号本周内容 在完美Excel公众号中,本周推出的内容清单如下: 一些基本的Excel VBA编程问题,答案来了 Excel小技巧66:快速求和 Excel实战技巧92:快速获取指定目录下所有文件清单...简单的Excel VBA编程问题又来了,你能答出来吗?

    6.6K20

    VBA实现Excel函数01:VLOOKUP

    很多学习VBA的应该都是在使用了一段时间的Excel之后,想弥补一些Excel本身的不足、或者是实现一些自动化操作。...函数是Excel里非常重要的一个功能,所以,我们结合Excel的函数,用VBA去实现一些常用的函数功能。...1、实现简单的VLOOKUP 提到Excel的函数,VLOOKUP函数应该是最为常用的一个查找函数了,一般我们都是使用它的精确查找功能,也就是第4个参数设置为0或者false,所以我们也只实现一个精确查找的函数...要实现这个功能,最简单的自然是用lookup_value与table_array里的第一列一个一个的比对,找到了相同的就返回col_index_num列的值,那显然这里需要用到For循环循环需要1个范围...我们继续完善一下,没有找到需要的值的时候,我们让它返回#N/A,所以,我们只需要在For循环之后加上一条语句: MyVlookup = "#N/A" 因为一旦找到了查找的值,For循环内部就会Exit

    7.2K31

    Excel VBA之Find

    Excel VBA之Find expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase,...该表达式返回一个 Range 对象。 What Variant 类型,必需。要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。 After Variant 类型,可选。...dd_test() ‘’’’’查找***工作表中含有” 金额合计”的单元格所在的行号 Set ng = Sheets("在编绩效").Cells.Find("金额合计", , , ,1) MsgBox...1).Row MsgBox "编外工资-金额合计:" & Sheets("编外工资").Cells.Find("金额合计", , , ,1).Row ‘’’’’’’’’’’’’’’’’’’’’’’’查找工作表中最大的行号可最大的列号...===有时用以下代码==【收藏】 ’’’’’’’’’’’’’’’’’’’’查找A列的最后一行号或第一行最后一列号 MsgBox "A列最后1行:" & Range("A1048576").End(xlUp

    2.1K20

    Excel实战技巧86:从下拉列表中选择显示相关的图片和文字说明

    在《Excel实战技巧22:在工作表中查找图片(使用VBA代码)》中,使用VBA代码来达到根据名称显示相应图片的效果。...如下图1所示,在《Excel实战技巧85:从下拉列表中选择显示相关的图片》的工作表示例中,添加了图片文字说明。 ?...图2 在单元格G3的位置,插入一个文本框。选取该文本框,在公式栏中输入: =G3 将文本框与单元格G3链接,如下图3所示。 ?...图4 相关文章: Excel实战技巧15:在工作表中查找图片 Excel实战技巧21:在工作表中查找图片 Excel实战技巧22:在工作表中查找图片(使用VBA代码) Excel实战技巧85:从下拉列表中选择显示相关的图片...欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。 完美Excel社群2020.9.9动态 #Excel VBA解读之用户窗体00# 写在前面的话

    7.1K20

    Excel实战技巧55: 在包含重复值的列表中查找指定数据最后出现的数据

    图1 下面,我们分别使用公式和VBA来解决。...TRUE,不相同则返回FALSE,得到一个由TRUE和FALSE组成的数组,然后与A2:A10所在的行号组成的数组相乘,得到一个由行号和0组成的数组,MAX函数获取这个数组的最大值,也就是与单元格D2中的值相同的数据在...A2:A10中的最后一个位置,减去1是因为查找的是B2:B10中的值,是从第2行开始的,得到要查找的值在B2:B10中的位置,然后INDEX函数获取相应的值。...组成的数组,由于这个数组中找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小的最大值,也就是数组中的最后一个1,返回B2:B10中对应的值,也就是要查找的数据在列表中最后的值。...Cells(i, ColNum) Exit Function End If Next i End With End Function 然后,在工作表中像Excel

    10.8K20

    INDIRECT函数导言

    但是学了VBA之后,我发现这尼玛就是个VBA函数,就像SUMPRODUCT函数是一个伪装成普通函数的数组函数一样。 说个题外话,数组函数,很多人也不理解,主要是因为脑中没有数组的概念。...最后它会返回金拱门。...就是Excel 对于工作表行号列标的表示方法。Excel 有两种表示工作表行列的方式,一种叫A1方式,一种叫R1C1方式。...在上面的例子中,最后INDIRECT 返回的其实是B1单元格而不是其中的值,但是呢,既然是单元格,怎么才能在工作表中表示单元格呢???...最后帮助你们从VBA角度理解一下。在VBA中,Range表示单元格对象,注意,是对象而不是单元格中的值。Range表示单元格区域有几种写法,其中一种是Range("文本")。

    67920
    领券