excel vba - 多条件索引匹配

2023-12-15

我正在尝试在 vba 中执行多条件索引匹配函数,但我似乎无法得到结果。 我使用的代码如下:

  wsDest.Range(wsDest.Cells(i, X), wsDest.Cells(i, X)) = _
  Application.WorksheetFunction.Index(wsSour.Range("C3:C8763"), _
    Application.WorksheetFunction.Match(wsDest.Cells(i, 1) & "&" & wsDest.Cells(i, 2), _
      wsSour.Range("A3:A8763") & "&" & wsSour.Range("B3:B8763"), 0), 0)

对于匹配部分,我尝试使用Excel的方法

=MATCH(criteria1 & criteria2,range1 & range2,0)


您可以使用WorkSheet.Evaluate方法来做到这一点。

这是一个简单的例子:

enter image description here

Sub Tester()

    Dim v, sht, a1, a2

    Set sht = ActiveSheet

    a1 = sht.Cells(7, 1).Address(False, False)
    a2 = sht.Cells(7, 2).Address(False, False)

    v = sht.Evaluate("MATCH(" & a1 & "&" & a2 & ",A2:A5&B2:B5,0)")

    sht.Range("B9") = v

End Sub

编辑:这是一个更强大的例子,考虑到不同的工作表

Sub Tester2()

    Dim v, shtDest, shtSrc, a1, a2, i

    Set shtDest = ThisWorkbook.Sheets("Dest")
    Set shtSrc = ThisWorkbook.Sheets("Source")

    i = 1

    a1 = "'" & shtDest.Name & "'!" & shtDest.Cells(i, 1).Address(False, False)
    a2 = "'" & shtDest.Name & "'!" & shtDest.Cells(i, 2).Address(False, False)

    Debug.Print a1, a2

    v = shtSrc.Evaluate("MATCH(" & a1 & "&" & a2 & ",A2:A9&B2:B9,0)")

    If Not IsError(v) Then
        shtDest.Cells(i, 3).Value = shtSrc.Range("C2:C9").Cells(v).Value
    End If

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

excel vba - 多条件索引匹配 的相关文章

  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 有没有办法破解 Excel VBA 项目的密码?

    我被要求更新一些 Excel 2003 宏 但 VBA 项目受密码保护 而且似乎缺少文档 没有人知道密码 有没有办法删除或破解 VBA 项目上的密码 你可以直接尝试这个VBA不需要十六进制编辑的方法 它适用于任何文件 xls xlsm xl
  • 如何使用java从Excel工作表中获取特定列名(作为参数传递)的最后一个非空单元格的行索引?

    模块的摘要 获取书籍名称 工作表名称和列名称作为参数 并期望模块返回所需的行索引 public int getExcelData String WBookName String sheetName String columnName int
  • 按数字键对字典排序

    我有一个带有整数键和整数项的字典 只需要根据键对字典进行排序 但我发现的所有示例仅适用于字符串键 将键作为数组获取 对该数组进行排序 然后使用排序后的数组从字典中提取值 Sub Tester Dim d As Object Dim i As
  • 如何使用其基本名称而不是 Item(#) 选择 XML 子节点?

    我有点陷入以下困境 我尝试使用 VBA 将当地银行网站的汇率获取到 Excel 主要用于 XML 解析练习 我想说这是我第一次认真的尝试 经过几个小时的谷歌搜索和阅读相关的 SO 问题后 我得到了或多或少可行的解决方案 但我想对其进行优化以
  • 对通过 VBA 导入/链接的表禁用安全警告

    如何阻止通过导入表弹出此窗口DoCmd TransferSpreadsheet 我正在导入相当多的表 因此必须在弹出窗口中为每个表单击 打开 这很烦人 我试过了DoCmd SetWarnings False但这似乎不起作用 我知道也可以设置
  • 刷新电量查询VBA

    因此 我使用下面的代码来刷新我的查询连接 但是 如果由于 wtv 原因刷新失败 如何显示消息 因为此 VBA 显示刷新已完成 即使我的查询存在多个错误 Worksheets Details Unprotect Dim Connection
  • 在 Excel VBA 中,如何保存/恢复用户定义的过滤器?

    如何使用 VBA 保存并重新应用当前过滤器 在 Excel 2007 VBA 中 我试图 保存用户在当前工作表上拥有的任何过滤器 清除过滤器 做东西 重新应用保存的过滤器 看一下捕获自动筛选状态 http www mrexcel com f
  • excel vba范围单元格错误对象定义[重复]

    这个问题在这里已经有答案了 我一直在 Excel 中开发一个宏 该宏对一张工作表 次要 中的表格进行排序 当满足条件时 它应该将该表中的数据添加到第二张工作表 Sheet1 中的另一个表格中 但是我一直运行时出现 1004 错误 对象未定义
  • 在访问中禁用 msgbox

    我正在尝试在 MS Access 2003 SP3 中制作一个小表单 我使用了其他人制作的一些函数 这些函数中包含 msgbox 我想在运行表单时禁用 msgbox Access 中是否可以禁用 msgbox 我创建了名为 msgbox 的
  • EXCEL 索引通过多个条件和多个匹配类型进行匹配?

    所以我确信我只是语法错误 但情况是这样的 我的 Sheet2 有 3 列 point name x y 我有 Sheet3 其中包含 5 列的区域列表 area name x start x end y start y end 我试图将每个
  • 选择或复制三个不相邻的单元格 3

    如何使用复制 3 个不相邻的单元格ActiveCell Row Range A ActiveCell Row C ActiveCell Row E ActiveCell Row Copy Update 欲了解更多信息 请遵循 https y
  • 在 Windows 服务中使用 OleDb 从 Excel 读取数据?

    免责声明 我知道这是一种不好的做事方式 这是我们与客户的唯一选择 Problem 我们需要每隔 x 时间从 Excel 文件读取数据 数据通过第三方 Excel 插件不断变化 应用程序的环境是 Windows XP SP1 和 Net 2
  • VBA在选择范围内选择随机行

    我只是想在用户选择的范围内选择随机行 然而 有时程序会选择特定范围之外的随机行 请参阅下面的代码摘录 Dim PopulationSelect As Range Set PopulationSelect Application InputB
  • Excel幂查询——聚合连续“传递”重叠时间间隔

    我正在尝试使用 Excel 强力查询将下面给出的表 1 聚合到表 2 目标是将同一组的连续时间间隔合并到一行中 对于像事件 5 和事件 6 这样的直接重叠 这非常容易 但这种方法仅合并事件 1 和 2 以及 2 和 3 从而产生两个条目 参
  • Xpath 适用于“MSXML2.DOMDocument”,但不适用于“MSXML2.DOMDocument60”[重复]

    这个问题在这里已经有答案了 可能的重复 XmlDocument 中的字符串大于 小于和等于比较 https stackoverflow com questions 4466494 string greater less and equal
  • VBA - Countif Range 与数组中的至少一个值匹配

    我不知道如何完成这项任务 如果该范围内的单元格中至少有一个单词与数组匹配 我需要计算工作表中的范围 例如 如果细胞 B2 有一个句子 其中包含数组中的单词之一 然后算作 1 然后简单地countif如果与数组匹配 则为范围 我的代码会更好地
  • Excel 在 CSV 导出中添加额外的引号

    我最近创建了一个应用程序 它通过 CSV 将项目添加到数据库 添加项目后 我意识到我的很多值都有不需要的额外引号 这扰乱了我的排序 问题是 当从 Excel 导出到 CSV 时 Excel 会向我所有已包含引号的值添加额外的引号 我在下面展

随机推荐

  • 使用最简单的方法将数据(字符串)从子 VC 传递到父 VC

    使用最简单的方法将数据 字符串 从子视图控制器传递到父 VC 我尝试了几种方法 但迷失了 有人可以告诉我最好的方法吗 斯里坎特是正确的 如果您有从一个视图控制器 我们的 第一个 视图控制器 到另一个视图控制器 我们的 第二个 视图控制器 的
  • 单击坐标而不识别元素

    作为我的 Selenium 登录功能测试的一部分 我想通过识别按钮的坐标并指示 Selenium 单击这些坐标来单击按钮 这可以在不识别元素本身的情况下完成 通过 id xpath 等 我知道还有其他更有效的方法来运行单击命令 但我希望专门
  • 即使浏览器关闭,CodeIgniter 如何保留会话数据?

    我想知道 CodeIgniter 中的会话是如何工作的 当浏览器关闭时 会话不是应该自动终止吗 默认情况下 CodeIgniter 不会在浏览器关闭时销毁会话 config sess expire on close FALSE 相反 我们可
  • Chart.js 工具提示模板不起作用

    因此 我正在 Chart js 中使用条形图 并且尝试让自定义工具提示正常工作 环顾四周 似乎在这种情况下要做的事情是添加 tooltipTemplate test 到我的选项部分 这将在结果工具提示中的数据值后面显示单词 test 然而
  • 在 SQL 中存储用户定义数据的正确方法

    我想构建一个类似于 wufoo 的在线表单生成器 允许用户创建和发布自己的 Web 表单 每个提交内容都应保存到数据库中 用户稍后可以在数据库中检索提交内容 因为这些形式将是动态的 即 用户可以完全控制表单字段的数量和类型我正在尝试考虑一个
  • PHP - 当变量放入 url 时,include() 文件不起作用?

    在 PHP 中 我构建了一个网页 它使用 include 来加载网站的某些部分 然而 我现在遇到了一个类似的问题 当我使用如下网址时 data openov storingen php type actueel它给了我这个错误 Warnin
  • 如何通过 tasytpie API 将产品放入购物车?

    假设我们有这些模型 原始项目有所不同 但这将是常见任务 class Cart models Model owner models ForeignKey User products models ManyToManyField Product
  • excel vba - 多条件索引匹配

    我正在尝试在 vba 中执行多条件索引匹配函数 但我似乎无法得到结果 我使用的代码如下 wsDest Range wsDest Cells i X wsDest Cells i X Application WorksheetFunction