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

VBA在row中搜索两个值并返回不同的列值

VBA是Visual Basic for Applications的缩写,是一种用于宏编程的编程语言,常用于Microsoft Office套件中的应用程序,如Excel、Word和Access等。在Excel中,可以使用VBA编写宏来实现自动化操作和数据处理。

在row中搜索两个值并返回不同的列值,可以通过以下步骤实现:

  1. 打开Excel文件,按下Alt + F11打开VBA编辑器。
  2. 在VBA编辑器中,插入一个新的模块,可以通过右键点击项目资源管理器中的"插入"选项来实现。
  3. 在新的模块中编写VBA代码,实现搜索和返回不同列值的功能。以下是一个示例代码:
代码语言:vba
复制
Function SearchAndReturn(row As Range, value1 As Variant, value2 As Variant) As Variant
    Dim cell As Range
    Dim result As Variant
    
    For Each cell In row
        If cell.Value = value1 Then
            result = cell.Offset(0, 1).Value ' 返回与value1对应的下一列的值
        ElseIf cell.Value = value2 Then
            result = cell.Offset(0, 2).Value ' 返回与value2对应的下两列的值
        End If
        
        If Not IsEmpty(result) Then ' 如果找到了结果,则退出循环
            Exit For
        End If
    Next cell
    
    SearchAndReturn = result ' 返回结果
End Function
  1. 在Excel工作表中,可以使用=SearchAndReturn(A1:Z1, "value1", "value2")公式来调用这个自定义函数。其中,A1:Z1是要搜索的行范围,"value1"和"value2"是要搜索的两个值。

这样,当在指定的行范围内找到匹配的值时,函数将返回与value1对应的下一列的值,或者返回与value2对应的下两列的值。

请注意,以上代码仅为示例,实际应用中可能需要根据具体需求进行修改和优化。

推荐的腾讯云相关产品和产品介绍链接地址:

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

相关·内容

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代表返回所在区域。

29310

【Kotlin 协程】Flow 异步流 ① ( 以异步返回返回多个返回 | 同步调用返回多个弊端 | 尝试 sequence 调用挂起函数返回多个返回 | 协程调用挂起函数返回集合 )

文章目录 一、以异步返回返回多个返回 二、同步调用返回多个弊端 三、尝试 sequence 调用挂起函数返回多个返回 四、协程调用挂起函数返回集合 一、以异步返回返回多个返回 ----... Kotlin 协程 Coroutine , 使用 suspend 挂起函数 以异步方式 返回单个返回肯定可以实现 , 参考 【Kotlin 协程】协程挂起和恢复 ① ( 协程挂起和恢复概念...// 调用 " 返回 List 集合函数 " , 遍历返回 listFunction().forEach { // 遍历打印集合内容...sequence 调用挂起函数返回多个返回 ---- 尝试使用 挂起函数 kotlinx.coroutines.delay 进行休眠 , 这样挂起时 , 不影响主线程其它操作 , 此时会报如下错误...---- 如果要 以异步方式 返回多个返回 , 可以协程调用挂起函数返回集合 , 但是该方案只能一次性返回多个返回 , 不能持续不断 先后 返回 多个 返回 ; 代码示例 : package

8.2K30

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

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

13910

一个类如何实现两个接口中同名同参数不同返回函数

假设有如下两个接口: public interface IA {     string GetA(string a); } public interface IB {     int GetA(string... a); } 他们都要求实现方法GetA,而且传入参数都是一样String类型,只是返回一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class... X:IA,IB 由于接口中要求方法方法名和参数是一样,所以不可能通过重载方式来解决,那么我们该如何同时实现这两个接口拉?...解决办法是把其中不能重载方法直接写成接口方法,同时要注意这个方法只能由接口调用,不能声明为Public类型.所以X定义如下: public class X:IA,IB {     public...IB.GetA(string a)//实现IB接口     {         Console.WriteLine("IB.GetA");         return 12;     } } 同样如果有更多同名同参不同返回接口

2.9K20

DWR实现直接获取一个JAVA类返回

DWR实现直接获取一个JAVA类返回     DWR是Ajax一个开源框架,可以很方便是实现调用远程Java类。但是,DWR只能采用回调函数方法,回调函数获取返回,然后进行处理。...我们假设在DWR配置了TestDWR中所对应类未JTest,那么我们要调用getString方法,可以这样写: function Test() {     //调用Java类TestgetString...,然后回调函数处理,上面那段话执行后会显示test,也就是java方法返回。...但是,采用回家函数不符合我们习惯,有些时候我们就想直接获取返回进行处理,这时候就无能为力了。 我们知道,DWR是Ajax框架,那么必然拥有了Ajax特性了。...现在,让我们打开DWRengine.js文件,搜索一个asyn,马上,就发现了一个setAsync方法,原来,DWR是这个方法设置成属性封装起来了。这样,我们就可以实现获取返回功能了。

3.2K20

numpy和pandas库实战——批量得到文件夹下多个CSV文件第一数据求其最

/前言/ 前几天群里有个小伙伴问了一个问题,关于Python读取文件夹下多个CSV文件第一数据求其最大和最小,大家讨论甚为激烈,在此总结了两个方法,希望后面有遇到该问题小伙伴可以少走弯路...通常我们通过Python来处理数据,用比较多两个库就是numpy和pandas,本篇文章,将分别利用两个库来进行操作。...3、其中使用pandas库来实现读取文件夹下多个CSV文件第一数据求其最大和最小代码如下图所示。 ? 4、通过pandas库求取结果如下图所示。 ?...通过该方法,便可以快速取到文件夹下所有文件第一最大和最小。 5、下面使用numpy库来实现读取文件夹下多个CSV文件第一数据求其最大和最小代码如下图所示。 ?.../小结/ 本文基于Python,使用numpy库和pandas库实现了读取文件夹下多个CSV文件,求取文件第一数据最大和最小,当然除了这两种方法之外,肯定还有其他方法也可以做得到,欢迎大家积极探讨

9.4K20

PostgreSQL秒级完成大表添加带有not null属性带有default实验

近期同事讨论如何在PostgreSQL中一张大表,添加一个带有not null属性,且具有缺省字段,并且要求秒级完成。...因为此,有了以下实验记录: 首先我们是PostgreSQL 10下做实验: postgres=# select version();...我们来看下一新家字段属性: postgres=# select * from pg_attribute where attrelid = 16384 and attname='a9'; attrelid...,如何快速添加这么一个字段: 首先,在这里我们涉及三张系统表,pg_class(表属性)、pg_attribute(属性)、pg_attrdef(缺省信息),接下来依次看一下三张表信息: #pg_class...) Time: 0.418 ms #pg_attribute 这里还没有修改,和前面一致,在此就查看了 #pg_attrdef 缺省信息,这里只有原来a9带有缺省 postgres=# select

8.1K130

arcengine+c# 修改存储文件地理数据库ITable类型表格某一数据,逐行修改。更新属性表、修改属性表某

作为一只菜鸟,研究了一个上午+一个下午,才把属性表更新修改搞了出来,记录一下: 我需求是: 已经文件地理数据库存放了一个ITable类型表(不是要素类FeatureClass),注意不是要素类...FeatureClass属性表,而是单独一个ITable类型表格,现在要读取其中某一统一修改这一。...表ArcCatalog打开目录如下图所示: ? ?...读取属性修改代码如下:            IQueryFilter queryFilter = new QueryFilterClass(); queryFilter.WhereClause...string strValue = row.get_Value(fieldindex).ToString();//获取每一行当前要修改属性 string newValue

9.5K30

VBA小技巧:确定工作表数据区域

使用VBA编写程序时,有几种常用方法可以工作表查找包含已有数据区域,但这些方法都多少存在一些局限。...Activesheet.Cells(Activesheet.Rows.Count,1).End(xlUp).Row 如果某个单元格数据位于更大编号行但位于不同,则得到结果不正确。...Activesheet.UsedRange 不是动态。 仅使用按行或查找(Find方法)可能会错过更大(如果按行搜索)或更大行(如果按搜索异常值单元格。...下面的代码是“万无一失”,它返回位于最大行和最大(如果是全新工作表,则为 A1)相交叉处单元格。复制、遍历或清除数据时,使用此函数将确保不会遗漏任何内容。...For dblCol= 1 to rngLastCell.Column 这个函数适用于任何情况,即使对于空工作表也是如此,因为默认是相关工作表单元格 A1(决不为空)。

1.1K20

Excel VBA解读(146): 使用隐式交集处理整列

图1 单元格B6输入公式: =A:A 并不会返回整列A,而是返回第6行与A相交单元格f。...同样,如果将单元格区域A1:A15命名为myCells,那么单元格B13输入: =myCells 并不会返回A1:A15全部,而是返回myCells与第13行交叉单元格A13m。...图3 如果在多个单元格输入上述数组公式,则会获取多个,如下图4所示,单元格区域C5:C9输入上面的数组公式,会得到A前5个数据。 ? 图4 那么,对于函数Excel又是怎么处理呢?...例如,公式: =VLOOKUP(A4,$A:$C,3,false) A至C组成区域中精确查找单元格A4内容,返回C相应。...VBA用户自定义函数(UDF)运用隐式交集技术 有2种方式可以让隐式交集技术UDF自动工作: 1.函数参数前面放置+号 2.使用VBA来处理隐式交集 例如,下面的简单UDF: Function

4.8K30

Excel VBA之Find

该表达式返回一个 Range 对象。 What Variant 类型,必需。要搜索数据。可为字符串或任意 Microsoft Excel 数据类型。 After Variant 类型,可选。...xlNext 默认 xlPrevious MatchCase Variant 类型,可选。若为 True,则进行区分大小写查找。默认为 False。...使用,因为我们工作表中常常在最后会写一此“备注”,我们取数据时候,备注与后面的东西是没用,所以我们要取到备注以上东西,以"金额合计"或“合计”为最后一行号 ====例子:代码==== Sub...-金额合计:" & Sheets("编外工资").Cells.Find("金额合计", , , ,1).Row ‘’’’’’’’’’’’’’’’’’’’’’’’查找工作表中最大行号可最大号...).Row MsgBox "1行最后1:" &Range("XFD1").End(xlToLeft).Column ’’’’’’’’’’’’’’’’’’’’数据使用区域最大行数和最大数号 getrow1

1.9K20

Excel VBA编程教程(基础一)

示例,Cells() 就是一个 Excel VBA 对象,表示一个单元格,提供行号和号指定单元格。 程序运行结构 接下来是程序结构中最核心部分,也是最有意思部分,程序运行结构。...VBA 顺序就是从上到下、从左到右顺序。 示例,首先运行两个声明语句,然后运行循环结构,以此类推。值得注意事,当程序有嵌套时,嵌套部分也是按照顺序指定。...程序开始,可以声明一个变量,指定变量类型(数字、文本、逻辑等),给变量赋值。程序其他地方,就可以用该变量,使其存储值参与运算。...) 将两行代码放置一行 比较运算符 比较运算符,比较提供两个变量,如果符合比较条件,返回 True,否则,返回 False。...在上一个例子基础上,这次对不及格学生,C填入不及格。

11.4K22

使用VBA查找最接近

标签:VBA 有时候,不一定会查找到精确,如果是这样的话,应该可以找到最接近。有很多公式可以实现,然而本文不使用公式,而是使用VBA代码来实现。...下面的VBA代码将遍历一系列单元格,评估最接近匹配。...r In rng If Abs(target - r) < Mx Then Mx = Abs(target - r) i = r.Row...End If Next r Cells(i, 3) = "匹配" End Sub 找到最接近关键是找到目标(目标匹配数字)和被评估单元格数字之间最小数字。...如果两个之间差为零,则有匹配项,否则,范围内最接近零数字是最接近匹配项,因为该数字是最接近。 本示例,评估数字B,你可以根据需要进行更改。

1.9K30

Excel应用实践06:进行多条件统计

这是知乎上看到一个问题,我试着用VBA来解决。欢迎大家就自已使用Excel遇到问题或想要解决方案提问,我将尽力解答。 问题:怎么用EXCEL多条件统计重复次数计数?...因此,我将场次、考场编码、试室、试室编码、报考专业连接起来,单独放置G,将它们作为字典键值,这样就得到了不重复数据。...填充字典键同时,统计重复数据,作为键元素,从而得到了每个试室每个专业的人数。...数据并将其放置字典 '字典中键值为不同数据组合 '字典中键对应为每种数据组合数量,即专业报考人数 For Each rng In Range("G2:G"& lngLastRow...)) '取出相应放置相应单元格 With Range("I2") .Offset(num, 0) = str(0)

91020

移除重复,使用VBARemoveDuplicates方法

查找重复、移除重复,都是Excel经典问题,可以使用高级筛选功能,也可以使用复杂公式,还可以使用VBA。...VBA,也有多种方式可以移除重复,这里介绍RemoveDuplicates方法,一个简洁实用方法。 示例数据如下图1所示,要求移除数据区域A1:D7第3C)重复。...其中,参数Columns是必需,指定想要移除重复。注意,可以指定多。...如果想要指定多个,使用Array函数: Range("A1:E15").RemoveDuplicates Columns:=Array(3, 5), Header:=xlYes 此时,如果这两组合是重复...示例:获取每个超市销售量最多区域 下面的数据是各超市不同区域销售量,已经按照销售量进行了统一排名,现在要获取每个超市销售量最多区域,也就是说对于C重复出现超市名称,只需保留第1次出现超市名称数据

7K10
领券