首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有IF语句和索引的Excel自定义公式,MATCH返回#VALUE错误

带有IF语句和索引的Excel自定义公式,MATCH返回#VALUE错误
EN

Stack Overflow用户
提问于 2017-08-21 17:29:51
回答 1查看 579关注 0票数 2

我正在从一个Excel工作表提取值到另一个工作表。我使用以下公式:

代码语言:javascript
运行
复制
= IF(ISBLANK(IFNA(INDEX(Range1;Row;MATCH(Dates;Range2;0));Error1));Error2;IFNA(INDEX(Range1;Row;MATCH(Dates;Range2;0));Error1))

因为我需要对提取的数据进行计算,所以我想创建一个自定义函数,它将通过消除每次都保持不变的参数输入来简化提取过程。因此,我构建了以下函数:

代码语言:javascript
运行
复制
Function DataCap(Dates As Variant, Row As Variant) As Variant

   Dim Range1 As Range 'Define the whole lookup table
       Set Range1 = Range("Data!A1:P151")

   Dim Range2 As Range 'Define the date lookup table
       Set Range2 = Range("Data!A3:P3")

   Dim Error1 As Range 'Define the error 1; if no value
       Set Error1 = Range("X16")

   Dim Error2 As Range 'Define the error 2; if blank
       Set Error2 = Range("Y16")

   DataCap.Formula "= IF(ISBLANK(IFNA(INDEX(Range1;Row;MATCH(Dates;Range2;0));Error1));Error2;IFNA(INDEX(Range1;Row;MATCH(Dates;Range2;0));Error1))"


End Function

当我运行它时,我得到了#VALUE错误。如果我将等式(具有相同的参数)直接粘贴到单元格中,它将按预期工作。所以,我认为问题在于VBA无法进行计算。有什么建议如何解决这个问题吗?

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 23:30:35

如果不能在你的数据上测试它,我不能确定它是否有效,但它至少可以为你指明更多正确的方向。

代码语言:javascript
运行
复制
Public Function DCap(xDates As Variant, xRow As Variant)
Dim Range1 As Range, Range2 As Range, Error1 As Range, Error2 As Range

Set Range1 = ActiveWorkbook.Sheets("Data").Range("A1:P151")
Set Range2 = ActiveWorkbook.Sheets("Data").Range("A3:P3")

Set Error1 = ActiveWorkbook.ActiveSheet.Range("X16")
Set Error2 = ActiveWorkbook.ActiveSheet.Range("Y16")

On Error Resume Next
If IsError(WorksheetFunction.Index(Range1, xRow, WorksheetFunction.Match(xDates, Range2, 0))) Then
    DCap = Error1
ElseIf Len(WorksheetFunction.Index(Range1, xRow, WorksheetFunction.Match(xDates, Range2, 0))) = 0 Then
    DCap = Error2
Else
    DCap = WorksheetFunction.Index(Range1, xRow, WorksheetFunction.Match(xDates, Range2, 0))
End If
On Error GoTo 0

End Function
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45793679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档