当前位置: 首页 > 知识库问答 >
问题:

如果值为空,则Excel VBA匹配

龙学
2023-03-14

我在一个更大的脚本中有一段代码,它只是根据匹配将值分配给“i”。这个想法是,如果找到输入的值,我希望它给出匹配值,如果没有,则为0。如果它是0,我可以然后退出子消息给用户。然而,任何时候匹配找到一个空值,它只是杀死子,而不是作为我介绍的iferror的一部分来处理。我尝试过各种检查方式(例如使用iif(isfalse)),但似乎都不起作用。

导致问题的代码如下所示:

i = Application.WorksheetFunction.IfError(Application.WorksheetFunction.Match(username, EL.Range("A:A"), 0), 0)

我是一个模糊的整数

用户名是一个字符串,来自输入框

EL作为工作表显示,并且包含正确的信息。

如果我引入任何存在的名字,这绝对没有问题,只有当我输入一个不起作用的名字时,它才会失败,我有点困惑为什么。我看不出它有什么失败的理由,但我觉得我只是当面错过了一些东西。

共有2个答案

龚沛
2023-03-14

我将使用稍微不同的方法捕获应用程序上的错误。匹配功能:

Dim i As Variant

i = Application.Match(UserName, EL.Range("A:A"), 0)
' if Match wasn't able to found a "match"
If IsError(i) Then i = 0
丘飞
2023-03-14

用这个代替。使用Application而不是WorksheetFunction可以捕获和测试错误。

i = Application.IfError(Application.Match(UserName, EL.Range("A:A"), 0), 0)
 类似资料:
  • 如果值为空,则需要在单元格中显示一个不间断的空格。这是我的模板: 我试过这个,但不管用: 它返回值的问题是: 如果许可证号带有值,则单元格为空,行颜色如下所示。 利用卢库马的建议,它表明了这一点: 更改筛选器中的if语句后,仍然不显示非值:

  • 以下是我如何发送: 或者像这样(两者都试过): 在接收端,如果我访问$\u POST,则它是空的。如果我访问文件\u获取\u内容('php://input“),然后它包含我的json。 这是怎么回事?

  • 问题内容: 我遇到了由于某种原因无法解决的问题。我正在尝试编写一个连接两个表的查询,其中在一个表中可能找不到匹配项。如: 如果中没有匹配项,则不返回任何内容。但是,如果没有匹配项,我仍然需要为该列返回NULL,并且仍从返回值。 我已经改变了所有我能想到的,但无济于事。 可以包含多个其他值,因此无法进行某种交易。 因此,如果没有匹配,我仍然需要它返回: 有什么建议? 问题答案: 将for的条件移出子

  • 因此,我目前正在尝试找出,如果提供的数据模型不包含标记,是否可以保留该值。我知道,但这不适用于FreeMarker标记。 基本上,我想做的是:

  • 我有一个hashmap列表。所有值都是整数。我想根据键匹配添加所有值。 假设我有一张地图,比如: 现在我需要一张地图作为输出,比如

  • 我在解析后通过检索表单数据来填充 我希望检查从表单中获得的字段是否为空,如果是空,则通过调用函数填充它,如果不是,则使用检索到的值填充它(invitecode:if newuser.invitecode==“”{“mr”}else{lnames.title},)。我知道go没有一个tenary运算符,我想要使用这个运算符,阅读这里的问题,这里的问题,这里的问题,这里的问题意味着使用一个if els