【问题标题】:Using the .find method in a user defined function在用户定义的函数中使用 .find 方法
【发布时间】:2019-11-06 09:14:46
【问题描述】:

我想创建一个函数,它接受两个输入变量 InputVal,它总是数字和 RefCell,它总是一个单词。然后该函数应使用 RefCell 中的单词在工作簿的另一张表中搜索某个单元格。然后从“找到的单元格”向右移动四个空格,并取出里面的内容(也总是数字)并将其与 InputVal 相乘并返回结果。

Function FindAndCalc(InputVal As Range, RefCell As Range)

    Dim FindCell As Range, NewCell As Range

    FindCell = Worksheets("Sheet1").Cells.Find(what:=RefCell.Value)
    NewCell = Worksheets("Sheet1").FindCell.Offset(0, 4)

    FindAndCalc = NewCell.Value * InputVal.Value

End Function

目前它只是返回一个错误“#VALUE!”,而它应该返回一个数值。

【问题讨论】:

  • 此外,您应该包含LookIn:=xlValues,lookat:=xlwhole 以获得完全匹配!

标签: excel vba find user-defined-functions


【解决方案1】:

你可能遗漏了一些 Set 的.. 也只是添加了一些逻辑

Function FindAndCalc(InputVal As Range, RefCell As Range)

    Dim FindCell As Range, NewCell As Range

    Set FindCell = Worksheets("Sheet1").Cells.Find(RefCell.Value)
    If Not FindCell is Nothing Then
        Set NewCell = FindCell.Offset(0, 4)
    End If

    FindAndCalc = NewCell.Value * InputVal.Value

End Function

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 2019-09-06
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多