- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Office 2007。我有一个 PowerPoint 宏,它使用 Excel 工作表来执行 vLookup。我为 vLookup 创建了一个公共(public)函数。当所有值都正确提供时,它工作得很好。现在,我正在尝试为无法找到查找值的情况捕获错误。功能代码为:
Public Function v_lookup _
(lookup_value As Variant, _
table_array As Range, _
col_index_num As Integer, _
range_lookup As Boolean) _
As String
Dim varResult As Variant
Dim objExcelAppVL As Object
Set objExcelAppVL = CreateObject("Excel.Application")
objExcelAppVL.Visible = False
varResult = objExcelAppVL.Application.WorksheetFunction.VLookup _
(lookup_value, _
table_array, _
col_index_num, _
range_lookup)
If IsError(varResult) Then varResult = ""
v_lookup = varResult
objExcelAppVL.Quit
Set objExcelAppVL = Nothing
End Function
varGatherNumber = v_lookup(varDateTime, Lit_Sched_Table_Lookup, 5, vbFalse)
varResult = objExcelAppVL.Application.WorksheetFunction.VLookup
If IsError(varResult)...
出现 vlookup 错误时的声明。如何正确捕获 vLookup 错误?
最佳答案
WorksheetFunction object 不会将错误值传递回变体;它只会让他们窒息。使用不带 WorksheetFunction 的 Excel Application object 可以处理错误值。您已经创建了一个 Excel.Application 对象;用那个。
通过使对象变量声明为静态,可以避免使用 CreateObject function 重复调用构造(和破坏)应用程序对象。这在可以向下复制长列的 UDF 中特别有用。
编写 native 工作表 VLOOKUP function 以允许完整列引用而不会受到惩罚;截断对 Worksheet.UsedRange 属性的完整列引用将有助于此功能。
Option Explicit
Public Function v_lookup(lookup_value As Variant, _
table_array As Range, _
col_index_num As Integer, _
Optional range_lookup As Boolean = False) As String
Dim varResult As Variant
Static objExcelAppVL As Object
'only create the object if it doesn't exist
If objExcelAppVL Is Nothing Then
Set objExcelAppVL = CreateObject("Excel.Application")
objExcelAppVL.Visible = False
End If
'restrict full column references to the worksheet's .UsedRange
Set table_array = objExcelAppVL.Intersect(table_array.Parent.UsedRange, table_array)
varResult = objExcelAppVL.VLookup(lookup_value, _
table_array, _
col_index_num, _
range_lookup)
If IsError(varResult) Then varResult = ""
v_lookup = varResult
'do not destruct static vars - they are reused on subsequent calls
'objExcelAppVL.Quit
'Set objExcelAppVL = Nothing
End Function
关于vba - Vlookup 和 ISERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664998/
我有一个公式可以突出显示一列(D 列)中的红色单元格,它表示以百分比表示的进度: =ISERROR(MATCH("P",$G5:$X5,0)) 即如果在 $G5:$X5 范围内没有“p”,然后将单元格
我在工作表中有一列包含未格式化的日期值。共有三种类型,始终以月份缩写开头: JAN/19 JAN02/19 JAN19 我正在编写一个宏来循环遍历该列并将其格式化为日期。 JAN/19 和 JAN19
我想知道是否有一种方法可以检查公式是否返回错误,如果没有,则使用找到的值,而不执行以下操作: =IF(ISERROR(A1/B1), 0, A1/B1) 我正在寻找的语法是这样的: =EQ([valu
我试图对 vlookup 进行简单检查: =IF(ISERROR(VLOOKUP(B2;SA!C:K;2;FALSE));"Error";VLOOKUP(B2;SA!C:K;2;FALSE)) 问题是
这让我发疯。我一直在寻找这个问题的答案,但找不到完全匹配的。该行: If IsError(Sheets(this_year)) Then GoTo Line99 旨在确定工作表 6th April Y
我正在使用 Office 2007。我有一个 PowerPoint 宏,它使用 Excel 工作表来执行 vLookup。我为 vLookup 创建了一个公共(public)函数。当所有值都正确提供时
如果单元格 A1 为负数或错误,我想输入 Y。我想把 N 否则。但是这个公式不起作用: if(OR(ISERROR(A1),A1<0),"Y","N") 还有其他方法吗? 最佳答案 Excel 计算
我对 VBA 很陌生,正在开发一个自定义函数(将来将用于更复杂的目的 - 这就是我想使用 VBA 而不是标准公式来执行此操作的原因),其任务应该从单元格中获取日期并指定其在列(例如 A 列)中的位置(
如果 some_function 返回错误,是否有函数返回 true? 最佳答案 没有。 Python 使用异常来处理错误,这些错误是使用 try...catch block 捕获的。 换句话说,您对
从 RHEL 5x 升级到 CentOS 6x 后,我开始在我的 httpd 日志中看到这些错误: PHP Strict Standards: Non-static method PEAR::isEr
我希望有人可以帮助解决我收到的错误? 我正在尝试在包含大量文本的单元格中查找值。我正在寻找文本 "TOTAL DDD AMOUNT"在一个单元格内,然后返回值 (注 - Range("P1458")
如果没有发现错误,我希望程序输出一条消息。 Sub casesVsQueue() Dim loop_counter As Integer
我正在尝试使用间接创建对单独工作表的引用。我还想检查它是否有错误,因此我使用 ISERROR 作为开头。 H1 是日期值,格式为“nn m.d”。在本例中,42574 返回 Sat 7.23 “周六
在VBA中,我试图确定单元格是否包含错误值,例如由于无效的功能。我现有的代码使用 Excel.WorksheetFunction.IsError方法,但我最近遇到一个导致误报的案例。该单元格不包含错误
我有以下函数在我的查询中创建一列: MTD:IIf(IsError(FormatNumber([62xx]![F40])),0,FormatNumber([62xx]![F40])) 它链接到一个 E
Lodash 提供了一种名为 _.isError 的方法。为什么我们需要使用该方法而不是 val instanceof Error? 如果你查看源代码,你会看到: function isErr
这个问题在这里已经有了答案: How to error handle 1004 Error with WorksheetFunction.VLookup? (3 个回答) 3年前关闭。 目标:查找输入
下面是我的 excel 函数输入,但它似乎没有工作,因为它只是返回 - 在谷歌文档中。 =IF(ISERROR(VLOOKUP(F11,Formulas!$A2:$B17, 2, FALSE)),
我有一个不起作用的公式。 =IF(OR(AC358="",ISERROR(AC358), AC358=0),VLOOKUP(M358,FCal,3,TRUE),VLOOKUP(AC358,FCal,3
我有一个简单的 Ember 数据模型: WZ.Exercise = DS.Model.extend name: DS.attr 'string' description: DS.attr 's
我是一名优秀的程序员,十分优秀!