Excel VBA VLookup - 错误 13 - “类型不匹配”

2023-12-22

我正在开发一个 Excel VBA 宏,它从另一张工作表获取客户的电子邮件。

我从 VLookup 中收到错误 13“类型不匹配”:

For Each c In Range("D3:D130").Cells

    If c > 500 Then

      Dim emailadress As String
      Dim client_name As String
      Dim lookup_mail As Range

      Set lookup_mail = Sheets("MAILS").Range("A1:D130")

      client_name = Range("A" & (c.Row)).Value

      emailadress = Application.VLookup(client_name, lookup_mail, 4, False)

如果我这样做它工作得很好:

      emailadress = Application.VLookup("John Doe", lookup_mail, 4, False)

所以我猜我“声明”的方式有问题?客户名称。这很奇怪,因为当我在 MsgBox 中输出 client_name 时,它​​会完美地弹出。

(我使用VBA因为我需要自动发送电子邮件给客户)

任何帮助表示赞赏!


我的猜测是,不是您的 VLOOKUP 引发类型不匹配错误,而是将其返回值分配给字符串。您的 VLOOKUP 可能尝试将错误值分配给字符串,这会导致类型不匹配。尝试使用变体。

另外,在循环内声明变量会灼伤我的眼睛。请不要这样做。这同样适用于您在循环之外实际可以执行的所有操作,例如设置lookup_mail范围。

Dim emailadress As Variant
Dim client_name As String
Dim lookup_mail As Range
Dim c As Range

Set lookup_mail = Sheets("MAILS").Range("A1:B3")

For Each c In Range("D3:D130").Cells
  If c.Value > 500 Then
    client_name = Range("A" & (c.Row)).Value
    emailadress = Application.VLookup(client_name, lookup_mail, 4, False)
  End If
Next

这样您的代码就可以工作,但您的 emailadress 变量可能包含错误。检查一下。

EDIT:

如果您使用 application.worksheetfunction.vlookup,它可能会工作得更好。如果 Vlookup 引发错误,它只会在 VBA 中返回错误,而不是尝试将其返回到变量。

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

Excel VBA VLookup - 错误 13 - “类型不匹配” 的相关文章

  • excel公式剥离html

    我想从文本值的左侧和右侧剥离所有 html 我有这个
  • VBA - 使用字符串串联调用子例程

    是否可以使用字符串串联来调用 VBA 中的子例程 例如 Sub Call This 2019 do something end sub Sub From this Call Call This str 2019 Sub 我使用这种方法没有任
  • 在 Access VBA 中获取 Combobox.Value

    我有这个代码 If Me Combobox Value My Text Then 然而 由于我想测试 我的文本 是否是唯一选择的值 因此跳过了条件 我也尝试过 Me Combobox Column 1 and Me Combobox Tex
  • 如何从Excel调用VBA函数

    我有一个 excel 文件 我必须在其中放置验证规则 我有一个单元格表示 客户时间 用户可以在其中输入时间 但它是自定义时间 用户可以这样输入时间 23 45 98 20 100 30 用户不能输入字符串 并且不能输入除冒号之外的特殊字符
  • 为什么 MS Excel 在 Worksheet_Change Sub 过程中崩溃并关闭?

    当我在 Excel 工作表上运行 VBA 代码时 我遇到了 Excel 崩溃的问题 我正在尝试在工作表更改中添加以下公式 Private Sub Worksheet Change ByVal Target As Range Workshee
  • 雅虎财经历史股价动力查询返回301响应

    直到今天我的 Excel 2016 power query 都能够从以下 URL 获取历史股票定价数据https finance yahoo com quote AAL history p AAL https finance yahoo c
  • 在Excel中过滤后打印可见区域的宏

    我有一个根据过滤表的宏column A价值观 现在我想打印only过滤器后的可见行 但遗憾的是它打印了所有行 包括过滤期间隐藏的顶部和底部行 在我的工作表中 有来自的数据Column A I 但打印区域只能是Columns C I 过滤后的
  • 使用VBA删除Excel中的非重复数据

    我尝试删除非重复数据并保留重复数据 我已经完成了一些编码 但什么也没发生 哦 这是错误 哈哈 这是我的代码 Sub mukjizat2 Dim desc As String Dim sapnbr As Variant Dim shortDe
  • 将 PDFMaker 与 MS Outlook 结合使用

    我想将 Adob e PDFMaker 插件与 MS Outlook 2013 一起使用 使用 PDFMAKER 将多封电子邮件保存为 pdf https stackoverflow com questions 44723984 savin
  • 如何自动将图表从 Excel(或 Calc)导出为 PNG

    问题 我正在开发一个 Web 应用程序 它将数据从数据库导出到 Excel 包括图表 这首先是导出的主要原因 现在我希望图表在网页上也可见 而不需要导出数据并打开下载的 Excel 文件 这当然可以使用 JS 库来完成 但是由于图表相当复杂
  • 根据不同的列数据范围隐藏行

    我对使用 VBA 相当陌生 我正在尝试创建一个代码 该代码将查看具有不同数据范围的两个不同列 并隐藏最后一个数据点之外的行 引用两列 目前我有这个 Private Sub Worksheet PivotTableUpdate ByVal T
  • 使用 UiPath 循环 Excel 文件中的 URL

    我尝试了几种方法 但不知怎的 它们看起来不干净 我有一个 Excel 格式的 URL 文件 一列中有 400 多个 URL 我希望 UiPath 从该文件中读取并一一浏览这些 URL 我尝试让 导航到 从从 Excel 读取的变量中读取 但
  • 如何通过VBA代码修复仅在Excel共享模式下发生的运行时错误400

    我真的不知道400错误是什么原因造成的 下面的代码在正常模式下运行得很好 但是一旦我在共享模式下启用 Excel 并尝试使用用户表单 它就会给我 VBA 400 我在这里尝试做的是在向用户显示用户表单后更改形状的文本并禁用其 OnActio
  • 求除某些列之外的 SUM

    以下是我所拥有的 A B C D E F G H I J K 1 2 3 4 5 6 7 8 9 10 50 为了找到SUM
  • 是否有任何公式可用于将特定单元格复制指定次数?

    目前我正在处理一份数据 其中我有一个公司名称列表 例如 1 A 2 B 3 C 还有很多 需要的结果是 1 A 2 A 3 A 4 A 5 A 6 B 7 B 8 B 9 B 10 B 11 C 12 C 13 C 14 C 15 C 等等
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • 无法使用 Excel JavaScript API 设置 NumberFormat

    我正在使用 Excel Javascript API 在搜索文档后 仍然找不到我想要实现的解决方案 因此 我想将所有内容设置为数字格式 文本 这样 Excel 的自动格式设置就不会与任何单元格的内容混淆 不会删除前导零或更改日期格式 文档建
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • 查询从同一表中的另一条记录获取值并按大于间隙阈值的差异进行过滤

    我将数据导入到 MS Access 中的临时表中 如下所示 我添加了需要使用 SQL 查询计算的 Gap 和 Previous Current 列 间隙阈值 是用户输入或范围提供给查询和例如是 300 GlobalID 对 ItemID 进

随机推荐