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

用于查找范围内的值并在值之间返回单元格的VBA代码

VBA代码是一种用于Microsoft Office套件中的Visual Basic for Applications编程语言。它可以用于自动化处理Excel、Word、PowerPoint等Office应用程序中的任务。下面是一个用于查找范围内的值并在值之间返回单元格的VBA代码示例:

代码语言:txt
复制
Function FindValueInRange(rangeToSearch As Range, valueToFind As Variant) As String
    Dim cell As Range
    Dim startCell As Range
    Dim endCell As Range
    Dim found As Boolean
    
    found = False
    
    For Each cell In rangeToSearch
        If cell.Value = valueToFind Then
            If Not found Then
                Set startCell = cell
                found = True
            End If
            Set endCell = cell
        End If
    Next cell
    
    If found Then
        FindValueInRange = startCell.Address & ":" & endCell.Address
    Else
        FindValueInRange = "Value not found in range"
    End If
End Function

这段代码定义了一个名为FindValueInRange的函数,它接受两个参数:rangeToSearch表示要搜索的范围,valueToFind表示要查找的值。函数会遍历范围中的每个单元格,如果找到与valueToFind相等的值,则记录下开始和结束的单元格,并返回它们的地址。

这段代码的应用场景可以是在Excel中查找某个值在特定范围内的位置。例如,假设我们有一个包含学生成绩的Excel表格,我们可以使用这段代码来查找某个特定分数在哪些单元格中出现。

腾讯云提供了一系列与Excel相关的云产品,如云服务器、云数据库、云存储等,可以帮助用户在云端进行数据处理和存储。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的信息。

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

相关·内容

  • VBA数组排序_vba函数返回 数组

    经过一番折腾查找,真是一看吓一跳,真是感觉蚂蚁看大象,发现排序分为: 今天仅整理了最简单两种排序。。。 先来看下定义和实现方法吧。...Integer Dim MinValue As String arr = Range("a1:a10") For i = 1 To UBound(arr) MinValue = arr(i, 1) '将第一个先默认为最小...MinIndex = i '记录最小索引位置 For j = MinIndex + 1 To UBound(arr) If arr(j, 1) < MinValue Then MinValue...= arr(j, 1) MinIndex = j End If Next '以此和当前最小做对比,比较出后面的最小并记录 及索引位置 '因为小我们都放在最前面,所以遍历只需从当前后面开始就可以了...,只会有两个可能,一种是MinIndex > i(在默认最小后面有比当前还小),另一种MinIndex = i :(在最小后面没有找到比当前再小)。

    3.4K40

    VBA自定义函数:满足多个条件并返回多个查找

    标签:VBA,自定义函数 如下图1所示,查找列A中值为“figs”行,并返回该行中内容为“X”单元格对应该列中首行单元格内容,即图1中红框所示内容。...图1 在单元格B20中输入公式: =lookupFruitColours(A20,"X",A2:J17,A1:J1) 这个公式使用了自定义函数lookupFruitColours。...这个自定义函数代码如下: Option Compare Text Function lookupFruitColours(ByVal lookup_value As String, _ ByVal...lookupFruitColours = Left(result_set, Len(result_set) - 1) End Function 其中,参数lookup_value代表要在指定区域第一列中查找...,参数intersect_value代表行列交叉处,参数lookup_vector代表指定查找区域,参数result_vector代表返回所在区域。

    51310

    VBA技巧:记住单元格更改之前

    标签:VBA,工作表事件 当工作表单元格被修改后,我需要将修改前放置到其右侧单元格中。例如,单元格A1中输入有数值1,当我将其内容修改为2之后,之前数值1被放置到单元格B2中。...在该工作表代码模块中输入代码: Private Sub Worksheet_Change(ByVal Target As Range) Dim sOldValue As String Dim sNewValue...A1中重新输入时,原值会自动放置到单元格B1中。...当一列单元格区域中发生改变时,需要将修改之前放置到相邻列对应单元格中,例如对于单元格区域A1:A10,其发生改变时,原来会自动放置到单元格区域B1:B10对应单元格中。...在该工作表代码模块中,输入代码: Private Sub Worksheet_Change(ByVal Target As Range) Dim rngToProcess As Range Dim

    24010

    VBA程序:对加粗单元格求和

    标签:VBA 下面的VBA自定义函数演示了如何对应用了粗体格式单元格求和。...ErrHandler: '检查是否溢出 If Err.Number = 6 Then SumBold = CVErr(xlErrNum) Resume Continue End Function 注意,当求和单元格区域中单元格格式发生更改时...,不会触发任何事件;而使用Application.Volatile语句,每当在工作表上内容更改时,单元格都会重新计算。...这意味着,仅对求和单元格区域中单元格设置加粗格式,使用该自定义函数求和不会改变,除非按F9键强制计算,或者在工作表中输入内容导致工作表重新计算。...这个程序也提供了一个模板,可以稍作修改对其它格式设置单元格来求和

    15910

    Excel公式技巧82:查找指定所在单元格

    通常,我们会根据指定位置查找,例如使用VLOOKUP函数查找指定行列单元格。然而,如果我们知道了某个,需要查找这个所在单元格,这如何使用公式呢?...例如,下图1所示工作表,其中数值最大单元格是G5。我们可以使用:=Max(B2:M7)获取该区域中最大数值,但怎样知道这个数在单元格G5中呢? ?...=ADDRESS(SUMPRODUCT((B2:M7=MAX(B2:M7))*ROW(B2:B7)),SUMPRODUCT((B2:M7=MAX(B2:M7))*COLUMN(B2:M2)),4) 返回单元格...按照这样思路,我们可以分别获取该区域最大所在行列标题。...公式: =INDIRECT(ADDRESS(SUMPRODUCT((B2:M7=MAX(B2:M7))*ROW(B2:B7)),1)) 返回“商品D”,即该数值对应商品名。

    8.6K30

    WordPress 内置用于接口返回默认函数大全

    在开发 WordPress 插件时候,其中一部分工作就是对接 WordPress filter(过滤器),而 WordPress 很多 filter 其实是简单开关型 filter,使用时候可能只需要返回...false / true,还有一些只需要返回数据,比如 0,空字符或者空数组等。...如果这个时候,还要自己写一个函数返回 true,当然使用闭包函数可以减少函数命名和代码,但是还是有点点麻烦。...其实 WordPress 已经提供了几个用于 filter 返回默认函数,直接使用就好了,可以省一堆代码。...'); 比如在 WordPress 后台文章列表关闭月份列表: add_filter('disable_months_dropdown', '__return_true'); 将 WordPress 返回版本号设置为空

    52730

    Golang中defer、return、返回之间执行顺序

    Go语言中延迟函数defer充当着 try...catch 重任,使用起来也非常简便,然而在实际应用中,很多gopher并没有真正搞明白defer、return和返回之间执行顺序,从而掉进坑中,...先来运行下面两段代码: A....如何解释两种结果不同: 上面两段代码返回结果之所以不同,其实从上面的结论中已经很好理解了。...a()int 函数返回没有被提前声明,其来自于其他变量赋值,而defer中修改也是其他变量(其实该defer根本无法直接访问到返回),因此函数退出时返回并没有被修改。...,但是由于 c()*int 返回是指针变量,那么在return将变量 i 地址赋给返回后,defer再次修改了 i 在内存中实际,因此return调用RET退出函数时返回虽然依旧是原来指针地址

    3.2K22

    Excel VBA解读(140): 从调用单元格中获取先前计算

    学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算慢资源用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用单元格中最后一次计算得到,并且只偶尔使用计算慢资源...可以设置开关(这里使用称为“RefreshSlow”已定义名称)并在VBA过程中刷新用户定义函数,如下所示: Sub RefreshUDFs() Dim lCalcMode As Long...因此,如果单元格被格式化为带有2个小数位数字,则检索到将被截断为2个小数位。...下面是名为PREVIOUSXLL+函数代码,该函数具有使其成为易失性或非易失性参数。(命令等效函数默认为易失性,但在使用它将前一个传递给VBA用户定义函数时,通常希望它是非易失性)。...此函数也适用于单元格数组公式。

    6.7K20

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

    该函数接受单元格对象、代表该对象属性字符串和属性作为参数,返回满足属性所有单元格。...图1 下面使用FindCells函数查找并选择所有红色背景色单元格代码如下: Sub UseFindCellsExample() FindCells(ActiveSheet.UsedRange...,"Interior.ColorIndex", 3).Select End Sub 代码中,传递单元格对象为当前工作表中已使用区域、属性为单元格背景色、属性为3(即红色)。...例如,如果想获取上图1所示工作表单元格A2背景色,可以使用下面的代码: Sub test() MsgBox CallByName(ActiveCell.Interior,"Colorindex...", VbGet) End Sub 返回6,是代表黄色颜色

    1.5K10

    Postman接口之间参数化Token,参数化取其他接口返回

    Postman接口之间参数化Token. 很多地方,有专门API接口获取Token,然后其他API在访问服务时候使用该Token。...1、POST 请求获取Token 比如下面这样子一个POST请求,专门去获取Token,即返回Json内容里面的access_token,然后供其他API使用。...3、将返回Token自动存储到对应环境变量里面 这里强调一下,演示地方主要是针对每一个环境有自己对应Authorization和UserId,所以对应存储到环境。...上面提到,返回是JSON信息,那我们就可以在Tests模块编写脚本,在请求成功之后,获取到返回JSON内容里access_token,然后set到环境变量Token里面。 ?...//获取Response body var token = pm.response.json().access_token; //打印获取到Token,目的是看我们是否取到 console.log(

    1.9K10

    VBA小技巧09:从非连续单元格区域将复制到指定单元格区域

    本文将给出一段VBA代码,从非连续单元格区域复制并粘贴到另外指定单元格区域。 如下图1所示,将右侧两个单元格区域数据复制到左侧两个单元格区域中。 ? 图1 下图2是粘贴数据后结果。 ?...图2 如果我们直接同时复制右侧两个区域中数据,由于Excel不允许对多重选择区域执行复制操作,会弹出如下图3所示提示信息。 ? 图3 看来并不如想像那样简单!但是,我们可以使用VBA来完成。...首先定义数据区域名称和要复制到区域名称。 如下图4所示,将单元格区域H2:K4和G7:J9定义名称为“copyrng”。 ?...图5 按Alt+F11组合键,打开VBE,插入一个标准模块,输入下面的代码: Sub CopyRange() Dim i As Integer Dim j As Integer...,Range("pasterng").Address返回代表引用单元格区域地址字符串,多个区域中间使用“,”隔开,而其中“:”号个数就是引用单元格区域数,所以代码: Len(strAddress

    3.1K40

    VBA自定义函数:一次查找并获取指定表格中多个

    标签:VBA,自定义函数 这个自定义函数来自于forum.ozgrid.com,可以在指定表中查找多个,并返回一组结果,而这些结果可以传递给另一个函数。...该函数代码如下: Public Function MultiVLookup(ReferenceIDs As String, Table As Range, TargetColumn As Integer...(IDs(i), Table, TargetColumn, False) Next MultiVLookup = Result End Function 其中,参数是ReferenceIDs代表要查找...;参数Table是包含查找内容表;参数TargetColumn代表表中返回结果列;参数Delimeter代表分隔符,可选,取决于第一个参数。...图1 要查找MyTable表中A、B、D对应第2列并求和,可使用公式: =SUM(MultiVLookup("A,B,D",MyTable,2)) 或者,将要查找放在一个单元格中,然后使用公式来查找相应

    19410

    Excel公式练习47: 根据单元格区域中出现频率和大小返回唯一列表

    本次练习是:有一个包含数字和空单元格区域,如下图1所示示例单元格区域A1:F6,要求生成这些数字唯一,并按数字出现频率顺序排列,出现频率高排在前面,如果几个数字出现频率相同,则数字小排在前面...H1中公式是一种用于确定单元格区域内不同元素数量标准公式结构。...I1中公式向下拖拉时,超过6个单元格返回空,也就是公式开头部分: =IF(ROWS($1:1)>$H$1,"", 下面看看公式中主要构造: MIN(IF(IF(Range1"",COUNTIF...COUNTIF(Range1,Range1)+1/(Range1*10^6) 将为单元格区域内每个生成一个计数数组,这很重要,因为问题症结在于根据在该区域内频率返回。...使用额外子句原因是为我们提供一种方法,使我们可以区分在区域内两个或多个出现频率相同情况。更重要是,此子句目的是在这种情况下首先返回较小

    1.7K20

    Excel VBA解读(134): 使用Excel函数提高自定义函数效率

    本文将介绍在自定义函数中最有效方式是使用Excel内置函数。 线性插是一种常用技术,用来查找缺失或者计算两个之间。例如下表: ?...是66与66.5之间中间,所以将2.45一半加上6.19得到7.415。...,Lookup_value是在单元格区域Table_Array第1列中要找,Col_Num是要进行插数据列号索引(本例中为2)。...仔细分析这个自定义函数代码,实际计算仅使用2行数据,但要获得这2行数据必须将所有数据导入到数组并在第1列执行线性查找。...因此,需要添加错误处理和达到数据边界情况处理: 使用On Error来捕捉非数字数据 检查要查找是否在表中数据范围之外 检查要查找是否是表中最后一个 代码如下: Function VINTERPOLATEC

    3.1K30

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

    IIf函数评估条件,如果为True,则返回一个;如果为False,则返回另一个。 9.如何确保Do... Loop语句中语句至少执行一次? 仅当条件置于循环末尾时,才能保证语句至少执行一次。...Function过程会向程序返回一个,而Sub过程则不会。 13.过程中代码行数有什么限制? 没有限制,但是良好编程习惯规定过程不应太长,最多30至40行代码是合理。...15.如何指定函数要返回? 通过将赋给函数名称。 16.过程中局部变量能否在调用过程之间“记住”其?如果要这样,怎么办? 能够,通过使用Static关键字声明变量。...17.VBA可以识别通用格式日期,例如2020/11/11。在VBA代码中,如何表明该是日期? 通过将其括在#字符中。 18.哪个VBA函数用于为日期添加间隔? DateAdd函数。...19.哪两个函数用于搜索文本(在另一个字符串中查找一个字符串)? InStr函数和InStrRev函数。 20.如何转换字符串,以使每个单词首字母大写,而所有其他字母小写?

    6.6K20
    领券