【问题标题】:How do I determine the row number of the row the function is executed in? (VBA) [duplicate]如何确定函数执行所在行的行号? (VBA)[重复]
【发布时间】:2021-03-25 04:10:12
【问题描述】:

如何找出函数执行所在的行?只是一个例子:

Function getRowNumber () as Integer
     getRowNumber = ???
End Function

我需要这个,因为我编写了一个应该从同一行返回值的函数(公式获取自己的列,然后为这 300 多行计算超过 300 个不同的值)。还是有另一种方法可以解决行中的值?

【问题讨论】:

  • 你不需要自己写函数,=ROW() 会得到你想要的。
  • 但是我需要输入 Row,我没有。下面的解决方案效果很好。

标签: excel vba function


【解决方案1】:

在这种情况下,您可以使用Application.Caller 属性。以下内容可能会对您有所帮助。

Function Tester() As Long
    Dim o As Object
    Set o = Application.Caller
    
    Tester = o.Row
End Function

也许更结构化的方法是将Range 作为函数的参数,然后使用该输入参数所在的行。

Function Tester(rng as Range) as Long
    Dim nRow as long

    nRow = rng.Row 
    'Do other stuff
End function

【讨论】:

  • @BigBen 我为Long 编辑了我的帖子。我从他的帖子中得出的结论是,这是一个更大的函数调用的一部分,他实际上并没有写一个UDF 来获取当前行。我可能错了,但这就是我的解释。
  • 非常感谢。正是我想要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多