VBA Excel - IFERROR 和 VLOOKUP 错误

2024-02-04

我正在尝试在 Excel VBA 中创建与 =IFERROR(VLOOKUP(),-1) 公式等效的内容,其中该函数将在数据表中查找文本,如果文本位于表中,则返回第五列中的数字如果不是,则为 -1。我已经在 Excel 中测试了上述公式,它给了我想要的结果,问题是当我用 VBA 对其进行编码时,我不断收到#VALUE!如果文本不在表中,则会出错。如果文本在表中,则代码会生成所需的数字。我的代码如下:

Function CCC(A As Variant)
Dim B As Variant
B = Application.WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(A, Sheets("DAP").Range("$B$4:$X$7"), 5, False), -1)
CCC = B
End Function

考虑到这一点,是否有办法修复代码,以便 IFERROR(VLOOKUP) 工作,如果不是,在 VBA 中实现相同结果的最佳替代方案是什么?


Using Application.WorksheetFunction.VLookup(如果未找到该值,则会破坏代码。

将其包装在 vba 错误控制中。

Function CCC(A As Range)
Dim B As Variant
B = -1
On Error Resume Next
B = Application.WorksheetFunction.VLookup(A.Value, Sheets("DAP").Range("$B$4:$X$7"), 5, False)
On error goto 0
CCC = B

End Function

另一种方法是通过删除来进行后期绑定.WorksheetFormula然后测试结果。

Function CCC(A As Range)
Dim B As Variant
B = Application.VLookup(A.Value, Sheets("DAP").Range("$B$4:$X$7"), 5, False)
If IsError(B) Then
    CCC = -1
Else
    CCC = B
End If
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA Excel - IFERROR 和 VLOOKUP 错误 的相关文章

随机推荐

  • 使用 Visual Studio 2008 使用 C++ 连接到 MS Access 数据库

    我需要一些认真的帮助来尝试使用 VS 2008 的 C 连接到 Access 数据库 我已经在 C 中做到了这一点 但我无法在 C 中弄清楚这一点 我需要使用 C 进行连接 因为我正在使用预编译的 C 代码获取数据 我真的很感激一些帮助 谢
  • 在WPF应用程序中动态创建按钮列表[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我即将开发我的第一个 WPF 我想获得按钮列表 这些按钮由 WPF 顶部的一个 添加 按钮生成 因此 当我按 添加 时 列表中会出现一
  • 任务控制选项 - 自定义条件 - 在先前失败或超时时运行任务

    是否有一个选项可以设置自定义条件来测试上一个任务是否失败或超时 目前 我正在使用Only when a previous task has failed当任务失败时它会起作用 如果任务超时 则不会将其视为错误并会跳过 那么我需要一个自定义条
  • Dart 确保类中的可选布尔值不为空

    由于它是一个可选值 有时会为空 那么如何避免它抛出错误呢 这是唯一的方法吗 class QText extends StatelessWidget QText this text this size this bold final Stri
  • 将第二个项目添加到堆栈窗格时,第一个项目会丢失其 Event/MouseOn。为什么?我该如何修复? JavaFX

    我有一个堆栈窗格 当我将第二个项目添加到堆栈窗格时 两者都会显示 但我无法再单击第一个项目 它变得 不可点击 我在 setonmouse 中定义的内容不起作用 它适用于我的第二个项目 如果我切换它们在堆栈窗格中的顺序 则另一个可以工作 但不
  • 在 OS X 中创建目录硬链接的 Unix 命令是什么?

    如何在 OS X 中创建指向目录的硬链接 而不是符号链接或 Mac OS 别名 我已经知道命令 ln target destination 但仅当目标是文件时才有效 我知道 Mac OS 与其他 Unix 环境不同 允许硬链接到文件夹 例如
  • JMS事务

    数据库事务是一个熟悉的概念 try updateDB commit catch error rollback 如果发生任何错误 updateDB 所做的任何更改都将被丢弃 我想知道消息队列事务回滚将撤消什么 try EDIT swapped
  • 角度引导模式在输入点击时打开

    在我的控制器中我有方法 scope openJukeboxesModalToGroup 打开模式弹出窗口 scope search Jukeboxes 在页面上搜索 scope keyPressed 捕获按键 在带有表格的部分
  • Git 包文件被截断

    当尝试将 Egit 与 Eclipse 一起使用时 我随机收到错误 包文件被截断 我不知道这是如何以及为何发生的 即使再次导入项目也没有帮助 这里有什么问题 我遇到了同样的错误 并认识到当我尝试在 Eclipse 中导入并打开本地 git
  • Maven读取属性文件中的环境变量

    如何读取属性文件中的系统环境变量 我正在使用 MyBatis maven 插件进行数据库迁移 MyBatis 根据环境使用属性文件 我正在尝试读取属性文件中的环境变量 例如 开发 property username env username
  • 在 Firefox 中使用 morris.js 脚本不再回答任何错误

    我正在使用 morris js 库http www oesmith co uk morris js http www oesmith co uk morris js 为了为网站创建图表 它适用于 Opera Internet Explore
  • 如何在Python中使用subprocess.call杀死一个调用的子进程? [复制]

    这个问题在这里已经有答案了 我正在使用调用命令 subprocess call cmd shell True 该命令不会自动终止 怎么杀掉它呢 Since subprocess call等待命令完成 您无法以编程方式终止它 您唯一的办法是通
  • suPHP 有安全性吗?

    我不久前问过这个问题 尽管我提供了一些赏金 但我从未得到太多答案 请参阅here https stackoverflow com questions 8032140 implementing log in alongside suphp 更
  • App.config 似乎被忽略

    作为重构操作的结果 我有了这个类库 我添加了一个 App config 文件并添加了如下内容
  • Spring Websockets STOMP - 获取客户端IP地址

    有没有办法获取STOMP客户端IP地址 我正在拦截入站通道 但我看不到任何方法来检查 IP 地址 任何帮助表示赞赏 您可以在握手期间将客户端 IP 设置为 WebSocket 会话属性HandshakeInterceptor public
  • 检查是否启用了锁定

    我必须检查设置中是否启用了系统锁定 我使用下面的代码行 boolean b android provider Settings System getInt getContentResolver Settings System LOCK PA
  • 如何使用新的 Slick 2.0 HList 克服 22 列限制?

    我目前正在编写 Slick 代码来针对具有两个表 gt 22 列的旧模式 我如何使用新的 HList 代码 http slick typesafe com doc 2 0 0 M3 api scala slick collection he
  • 经过后台推送的一些测试/调试后,iPhone 上的“pushDisallowed”和“决定:绝对不能继续”

    我正在创建一个 Xamarin Forms 应用程序 它通过 Azure 通知中心使用后台推送 该应用程序针对 Android 和 iOS 经过一些初步原型设计和测试后 一切在两个平台上都运行良好 对于 iOS 我发送包含以下内容的推送 a
  • 如何阻止 UIBarButtonItem 文本被截断?

    我有一个UIBarButtonItem在导航栏中 文本标题为 保存 当我切换到全屏时UIPopoverController然后关闭它 我的 UIBarButtonItem 中的文本被截断为 S e 对于所有其他的 Segues 和视图 我返
  • VBA Excel - IFERROR 和 VLOOKUP 错误

    我正在尝试在 Excel VBA 中创建与 IFERROR VLOOKUP 1 公式等效的内容 其中该函数将在数据表中查找文本 如果文本位于表中 则返回第五列中的数字如果不是 则为 1 我已经在 Excel 中测试了上述公式 它给了我想要的