【发布时间】:2014-02-07 20:29:47
【问题描述】:
背景故事
在我的工作中,我们使用桌面日历来跟踪发生的大量随机细节:每个人的每日工作时间、发送的报告类型和数量等。为了帮助我们填写一些表格,我的老板决定他想为该月创建一个电子表格,并使其每天保持最新状态。他在这个月开始之前就去度假了,所以我一直在接替他的工作。我注意到他硬连线了总数的计算(每个人的总小时数、发送的总报告等),因此当我将日期从一月更改为二月时,我们有一些剩余的日期会导致三月。我删除了它们,然后所有公式都抛出了#REF!因为它的错误。
如何设置数据很简单:
AB 2.50
CD 3.50
EF 8.00
...ETC...
AB、CD、EF 在一列中,值在相邻列中。
问题
我试图让它工作,但没有运气,所以我认为这可能是不可能的,但我想我会问一群比我更了解这个主题的人:在我制作的一个函数中我让它接受一个要搜索的字符串参数,如果找到它,它会移动到相邻的单元格并将该值添加到运行总计中。然后它在最后返回那个数字,所以对这个函数的调用类似于
=getTotals("AB") ' this would display whatever the total for AB is
但是当我尝试这个时,我得到的只是一个#VALUE!单元格中的错误。
有没有什么方法可以让它按照我想要的方式工作,而不使用完整的宏?
函数
我让这个功能工作,我想怎么做
Function getTotal(rng As Range, search As String) As Double
Dim r As Range
getTotal = 0
For Each r In rng
If r.Value = search Then
getTotal = getTotal + r.Offset(0, 1).Value
End If
Next
End Function
这样称呼它:=getTotal(A1:D2, "AD")
【问题讨论】:
-
Excel UDFS 无法更改工作表单元格...
-
@Jhecht,你能发布你的函数逻辑吗?
-
目前还没有,它基本上是使用 cells.find() 方法来搜索工作表并汇总所有内容。有空我会发的