【发布时间】:2015-04-09 01:27:11
【问题描述】:
也许我在这里尝试做的太多了,但我已经为此工作了几个小时,但没有运气。我希望你能帮忙。
我正在创建一个函数,其唯一参数是同一工作簿中另一张工作表上的命名范围。我的问题是我不知道如何将该名称传递给函数并使用它。
我的目标是调用该函数来对另一个工作表上指定范围指定的列求和,称为客户付款。
这是我的有效代码:
Function PayPerMonth()
PayPerMonth = Application.WorksheetFunction.Sum(Worksheets("Client Payments").Range("C:C"))
End Function
我得到的总数是正确的,但当然我在函数中指定了列。不太有用。
这是我尝试过但不起作用的方法:
Function PayPerMonth(ColumnToAdd)
PayPerMonth = Application.WorksheetFunction.Sum(Worksheets("Client Payments").Range("ColumnToAdd"))
End Function
当我删除 ColumnToAdd 周围的引号以及我尝试过的许多其他变体时,它不起作用。
我要做的是输入 =PayPerMonth(MBPADV) 或 =PayPerMonth(SBTSADV) 等来调用函数并瞄准右侧列,其中 MBPADV 和 SBTSADV 是命名列。
我不喜欢使用列名。它只是让它更具可读性(对我来说,无论如何!)。
这个可以吗?
【问题讨论】:
标签: function excel parameter-passing named-ranges vba