2012-12-08 109 views
0

內執行計算我正在執行VB函數以在不同類別的指定期間內對累計金額進行分類。目標是爲人事賬戶開支。VBA Excel在範圍內查找日期期間並在

例如,我在表A中的某個日期,B列中的某個類別(例如Salary,Transport ...)和C列中的值中顯示了「tmp」。

我要定義一個函數,我已經嘗試設置:

Function Cumulatif(Categorie As String, Debut As Date, Fin As Date) As Double 
    ' Do the sum of a category between a starting and ending date specified 
    Dim Operations As Variant 
    Dim SpecificSum As Double 
    Dim i As Integer 
    Operations = ThisWorkbook.Sheets("tmp").Range("A1:C3") 
    For Each Row In Operations.Rows 
     SpecificSum = 0 
    Next 
    Cumulatif = SpecificSum 
End Function 

但我真的不知道如何從另一片得到的值,做循環中設置此金額範圍內。有人可以幫助我嗎?

+0

這樣的函數返回#VALUE錯誤!我不明白爲什麼? – user1187727

+0

如果您希望將'Operations'分配爲Range對象,那麼您需要使用'Set'。如果你的意思是它是一個變種的二維數組(不使用set的話),那麼就不會有'.Rows'集合...... –

回答

0
  1. 對操作的分配需要是一個對象賦值,意思是:使用Set(not Let/default)。

    Set操作= ThisWorkbook.Sheets( 「TMP」)範圍(「A1:C3)

  2. 你可以從其他表中的值(假設你的意思是 」TMP「)如下

    SpecificSum = SpecificSum + Row.Cells(1, 1) 
    

我想你會更好,具有該功能需要一個額外的參數範圍和供應工作表Sheet1 A作爲一個參數;!當它需要重新計算這樣Excel將知道

。 10

並調用使用這樣一個公式Cumulatif:

=Cumulatif("hello9","10/1/2010", "10/31/2010",Sheet1!A2:A3) 
相關問題