使用查找函数未找到值的错误消息

2024-06-22

我使用此代码来检查条形码是否在数据库中,但每次条形码不在列表中时,它都会提示一条错误消息:

运行时错误 91:未设置对象变量或 With 块变量。

是否有一行我可以像消息框一样添加,表明输入的条形码无效。我知道这就是我所需要的,但显然,我不知道应该使用哪个函数来附带 IF 语句。有什么建议么?

如果有人可以建议使用 FOR 语句(如果要搜索批次),我也将不胜感激。 1111-1114

Private Sub CheckBarcodeStatusCommandButton_Click()
    ActiveWorkbook.Sheets("Inventory Log").Select
    Columns("J:J").Select
    Selection.Find(What:=CheckBarcodeTextBox.Text, after:=ActiveCell, _
        LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, _
        SearchFormat:=False).Activate

    If ActiveCell.Offset(0, 1).Value = "In" Then
        MsgBox ("The barcode no. " & CheckBarcodeTextBox.Text _
            & " is currently available")
    ElseIf ActiveCell.Offset(0, 1).Value = "Out" Then
        MsgBox ("The barcode no. " & CheckBarcodeTextBox.Text _
            & " has already been used.")
    End If

    Application.DisplayAlerts = False
End Sub

来自文档 https://learn.microsoft.com/office/vba/api/excel.range.find:

该方法返回Nothing如果没有找到匹配项。这.Find方法不会影响选择或活动单元格。


这演示了如何使用VBA.Find method:

这假设(根据您的示例)CheckBarcodeTextBox包含要在列中匹配的文本J,仅匹配“整个单元格”。

Private Sub CheckBarcodeStatusCommandButton_Click()
    Dim lookFor As String, lookIn As Range, found As Range

    lookFor = CheckBarcodeTextBox.Text
    Set lookIn = ThisWorkbook.Sheets("Inventory Log").Columns("J:J")
    Set found = lookIn.Find(lookFor, , xlValues, xlWhole) 'match whole cell value

    If found Is Nothing Then
        'not found
        MsgBox "No match for: " & lookFor
    Else
        'found
        MsgBox "Found: " & lookFor & vbLf & _
               " in cell: " & found.Address & vbLf & _
               " which contains: " & found.Value
    End If
End Sub

如果您只需要检查是否匹配exists(并且不需要知道location),那么上面的例子可以稍微简化一下。

Private Sub CheckBarcodeStatusCommandButton_Click()
    Dim lookIn As Range
    Set lookIn = ThisWorkbook.Sheets("Inventory Log").Columns("J")
    If lookIn.Find(CheckBarcodeTextBox, , xlValues, xlWhole) Is Nothing Then
        MsgBox "Not found:."    'do something if not found
    Else
        MsgBox "Found."         'do something if found
    End If
End Sub

在工作表公式中我会使用VLOOKUP or MATCH,可以使用调用Application.WorksheetFunction但两者都需要On Error处理不匹配的情况,所以.Find可能是最好的。


来自 Microsoft 文档的更多信息:

  • Range.Find Method (Excel) https://learn.microsoft.com/office/vba/api/excel.range.find
  • Application.DisplayAlerts财产 (Excel) https://learn.microsoft.com/office/vba/api/excel.application.displayalerts

Recommended Bookmark: Microsoft Documentation: Office VBA Reference https://learn.microsoft.com/office/vba
Use the sites' left sidebar to navigate to sections like VBA functions https://learn.microsoft.com/office/vba/language/reference/functions-visual-basic-for-applications, methods https://learn.microsoft.com/office/vba/language/reference/methods-visual-basic-for-applications and statements https://learn.microsoft.com/office/vba/language/reference/statements.

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

使用查找函数未找到值的错误消息 的相关文章

  • Excel HTTP 获取超时

    我们有这个小子 它只是将数据泵入远程服务器 一切都按预期进行 前几天 网络服务器发生了一次持续大约一个小时的事件 我仍然可以 PING 服务器 但 IIS 没有响应 结果 宏只是挂起等待响应 关于快速通过 失败测试或超时有什么想法吗 Sub
  • 在 VBA 中声明字典

    我收到错误Run time error 424 Object required当我尝试在 VBA 中创建字典时 我的代码如下所示 Private Sub data Dim dicti As Object Set dicti CreateOb
  • 如何使用 Office.js 获取单元格的格式

    我正在开发一个 Excel 加载项 它提取单元格 A1 的文本 包括其格式 并在其自己的区域中显示文本 所以添加包含这个 见下面的截图 显示格式化文本的区域 开始提取的按钮请点击查看图片 https i stack imgur com oy
  • 条件格式化VBA多个条件

    我对 VBA 世界非常陌生 需要一些关于条件格式的 VBA 方面的帮助 1 我需要将条件格式应用于列 M 7岁以下绿色 黄色从7 20 红色大于20 最重要的条件是 如果列 N 声明 NOPO 则我不希望应用条件格式 我已经制定了一个公式来
  • 自动创建 Outlook 约会

    我有一个跟踪到期日期的电子表格 excel 2003 我想知道是否有办法让这些到期日期在 Outlook 中创建约会 提醒 到期日期位于电子表格的一个字段中 实体名称位于另一列中 理想情况下 我希望 Outlook 2003 能够获取日期
  • Hyperlinks.add VBA [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在用 VBA 编程 我想使用创建超链接hyperlink addActiveSheet 对象的方法 但是它不起作用 这是我的代码 set
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • 父子进程隔离和子进程列表

    请阅读以下模板 PID Status LPID 10 Closed 25 11 Open 25 31 Open 31 25 Closed 25 54 Open 31 17 Open 17 20 Closed 31 88 closed 77
  • 有没有办法破解 Excel VBA 项目的密码?

    我被要求更新一些 Excel 2003 宏 但 VBA 项目受密码保护 而且似乎缺少文档 没有人知道密码 有没有办法删除或破解 VBA 项目上的密码 你可以直接尝试这个VBA不需要十六进制编辑的方法 它适用于任何文件 xls xlsm xl
  • 如何使用其基本名称而不是 Item(#) 选择 XML 子节点?

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

    我有一个包含多个日期的电子表格 这些通常出现在mm dd yyyy or mm dd yyyy hh mm 问题是日期并不总是正确输入 我想进行检查以确保它们是代码中的日期 我最初的想法是使用IsDate检查或CDate但这似乎不起作用 它
  • 使用表单更新列表框中的查询对象。 (MS-Access)

    目标是创建一个查询表中定义为 活动 的所有对象的表单 该查询在表单上显示为列表框 我希望访问此表单的用户能够选择该查询的对象 然后通过从第二个列表框中选择操作来更新表 然后单击提交按钮 Visually 我认为单击时的 VBA 看起来像这样
  • 对通过 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
  • VBA Excel - 如何在 Excel 数组中显示不相等的值

    所以目前我在Excel中有两个数据输入 数据1和数据2 我需要一个公式或某种形式来显示结果 目前这是一个手动过程 使用方法Filter 功能 Function test ByVal a ByVal b Optional Delim As S
  • 对象“_Worksheet”的方法“复制”失败

    我第一次遇到这个错误 对象 Worksheet 的方法 复制 失败 我听说这是一个很常见的错误 但我无法找到解决方案 当我搜索时 我发现了很多关于 对象的 范围 失败 错误 此错误是由工作站的内存限制引起的还是与软件相关的错误 有人有办法解
  • 有没有办法加快此 VBA 宏的运行速度,以在大范围内执行 1000 次 Vlookup?

    Sub Questionnaire to Ventilation Questionnaire to Ventilation Macro Keyboard Shortcut Ctrl Shift M Application ScreenUpd
  • 在 Windows 服务中使用 OleDb 从 Excel 读取数据?

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

    我正在制作一个电子表格 其中 B 列中包含股票代码 ID I 列中包含与这些代码相对应的成员 J 列中包含费率 费率根据编号而变化 成员 因此一个股票代码 ID 可以位于多行中 在我的输出中 我需要特定股票 ID 和成员的费率 它应该查找确

随机推荐

  • 找不到 Require / child_process + launch .bat' aria-label='Require('child_process') => 找不到 Require / child_process + launch .bat'> Require('child_process') => 找不到 Require / child_process + launch .bat

    我已经在论坛上搜索了三天的方法来让我的程序工作 但它仍然不起作用 我正在尝试我的第一个 AngularJS 项目 我需要启动外部程序当用户单击图像时 我有一个名为 tool list 的模块 在我的 tool list component
  • Preg_replace的效率

    执行摘要 preg replace 比字符串比较运行得更快 为什么 正则表达式不是应该更慢吗 In a 最近的问题 https stackoverflow com questions 3487781 php check string for
  • 从列表视图传递到网格视图

    我有一个带有列表的活动 其项目由图像 文本组成 我需要允许用户更改视图并使用 gridview 代替它 其元素仍然由相同的图像 文本组成 用户可以通过图标菜单来完成此操作 public boolean onOptionsItemSelect
  • 如何将各个 CSV 行上传到 PHP 中的不同表中?

    我正在努力找出最好的方法来做到这一点 我的 MySQL 数据库有 5 个表 大约 5 条记录 行 我需要经常更新它 问题是我上传的文件将是 csv 文件 另外我希望每行进入 5 个不同的表 我正在尝试更新 where 有一个唯一的id ui
  • 清除自定义适配器

    我已经在 ListView 中实现了一个搜索栏 到目前为止它工作正常 除了 适配器表现得很奇怪 每次我调用其清除功能时 我的列表视图仍然显示 旧 内容 public abstract class MYLISTITEM extends Bas
  • 使用 sed 删除带有方括号和引号的模式

    如何使用 sed 删除具有此模式的行 resourceNames I tried sed i resourceNames d sa yaml 文件的一部分看起来像这样 apiGroups resources secrets resource
  • 未捕获的类型错误:YT.Player 不是构造函数

    我希望有人能帮忙解决这个问题 当我位于页面上大约 5 个选项卡中的一个选项卡上时 我收到以下错误 Uncaught TypeError YT Player is not a constructor 我单击页面上的按钮 它会弹出一个模式窗口
  • 我可以获得当前加载的所有模块的列表吗?

    module info 会告诉我很多关于模块的信息 前提是我知道它的名称 我需要找到名称符合特定条件的所有模块 例如 companyname creator serialnumber 我记得在 erlang 存储此信息的地方读过 但我正在寻
  • 如何创建多个列表? [复制]

    这个问题在这里已经有答案了 我正在尝试创建多个列表 如下所示 l1 l2 ln 有什么办法可以做到这一点吗 你可以做的是使用字典 gt gt gt obj gt gt gt for i in range 1 21 obj l str i g
  • 使用 PTRACE_SINGLESTEP 仅拦截系统调用

    我们有一个学校项目 需要重新编码 strace 我们只需拦截像 write 和 read 这样的系统调用 但我们不能使用PTRACE SYSCALL 我正在寻找一种方法来使用PTRACE SINGLESTEP 我已经编写了一种打印系统调用的
  • 当引导模式打开时如何防止正文内容滚动

    我正在使用 Angular UI Bootstrap模态框 http angular ui github io bootstrap modal 当模式打开时 主体有一个滚动条 当我滚动时 模式后面的内容也会滚动 我可以将溢出 隐藏到正文标记
  • 如何从非图像的 WebSocket 读取 BLOB 数据

    我创建了一个到网络服务器的 WebSocket 连接来接收一些数据 但是 当我记录在onmessage函数 那么我就看不到数据的真实内容 当我复制 Chrome 浏览器 v32 作为curl 命令打开的网络连接并在我的操作系统控制台上运行它
  • 使用 AWS Lambda 在无服务器中 Cron 作业触发两次

    我正在运行一个 Cron 作业 该作业每周日上午 10 00 UTC 运行 它将短信推送到电报组 这是我的完整代码 https github com deadcoder0904 lessons of hn telegram bot 以下相关
  • C# 自定义列表视图

    有人有关于创建 绘制自定义 ListView 对象的任何信息吗 目前我正在从事一个需要在应用程序中定制外观和感觉的项目 我使用的是标准 Windows Forms ListView 它与 GUI 的其余部分的风格不同 我们没有使用自定义控件
  • java中的四舍五入值

    我将如何圆 1 1 5 怎么样 double rounded Math ceil number 2 2 Since Math ceil 已经返回双精度值 无需除以2 0d这里 只要您在可以表示为双精度数的整数范围内而不丢失精度 这就可以正常
  • 近4季度数据

    我想获取最后 4 个季度的数据 包括当前季度的数据 假设如果我运行查询30 MAR 2019然后我想要来自的数据01 APR 2018 to 31 MAR 2019如果我运行查询01 apr 2019然后我想要之间的数据01 JUL 201
  • 将 Serilog 配置代码行转换为 json 配置时遇到问题

    我发现一篇博文解释了如何按 LogEvent 级别过滤到单独的文件以进行 Serilog 配置 我正在 appsettings json 中进行所有 Serilog 配置 这在 json 配置中看起来怎么样 我似乎不知道如何 json la
  • Java Webstart 无法脱机工作(NoRouteToHostException/UnknownHostException)

    我想配置我的 webstart app jnlp 以便如果没有可用的互联网连接 它将从缓存启动 然而 当我断开与互联网的连接时 尽管配置如下 但我总是收到 NoRouteToHostException 或 UnknownHostExcept
  • 交错行二维 Numpy 数组

    我有一个 2D numpy 数组 如下所示 array x1 x2 x3 x4 x2 x3 x4 x5 x3 x4 x5 x6 y1 y2 y3 y4 y2 y3 y4 y5 y3 y4 y5 y6 我想交错行 使数组看起来像这样 arra
  • 使用查找函数未找到值的错误消息

    我使用此代码来检查条形码是否在数据库中 但每次条形码不在列表中时 它都会提示一条错误消息 运行时错误 91 未设置对象变量或 With 块变量 是否有一行我可以像消息框一样添加 表明输入的条形码无效 我知道这就是我所需要的 但显然 我不知道