很长一段时间,第一次。
我正在为油气田工作中的修井机创建一张表。每张纸的结构相同,但代表着不同的工作日。我有按钮,在需要新的日子时添加和减少工作表,这使我的主要问题变得复杂:
我需要创建一个函数来计算工作簿中该表之前各种类别的累积成本。我需要一种方法来引用与包含该功能的单元格相邻的单元格(包含当前日期的成本),以及之前工作表的累积成本(或每张先前工作表的每日成本,在同一单元格中返回一张纸张)来创建新的累积价值。我希望每张工作表的累计数累积到当天。
子程序会更有利于此,但我不希望有人必须单击按钮才能在这些单元格中生成累积。它需要在添加信息时自动计算。
到目前为止我的内容如下。工作表按作业中的编号日命名(1,2,3,4等),每个工作表中的单元格AD7也包含作业当天的值。基本上我需要的是一种提取和使用“每日”输入单元格地址的方法。
Function Cat_Cum(daily)
Dim day, i As Integer
day = Cells(7, 30)
For i = 1 To day
If i = 1 Then
Cat_Cum = Sheets(i).Cells(daily.Address)
Else
Cat_Cum = Sheets(i).Cells(daily.Address) + Cat_Cum
End If
Next i
End Function
回顾工作表结构:
2列:每日费用,累计费用。 每张纸的结构相同。 累积量应该是同一单元格中每个先前工作表每日值的总和。
感谢您的帮助!
答案 0 :(得分:0)
IIUC你希望你的UDF是这样的:
Public Function Cat_Cum(daily As Range)
Cat_Cum = daily.Value2
If Application.caller.Parent.Name = "1" Then Exit Function
Cat_Cum = Cat_Cum + _
Worksheets(CStr(Application.caller.Parent.Name - 1)).Range(Application.caller.Address).Value2
End Function
所以在名为“1”,“2”,“3”等的每个工作表中,在您键入的累积列中,在第2行中填写=Cat_Cum(A2)
并填写。如果它是另一列,则替换每日内容的列代替A
。