2013-04-03 86 views
1

所以,我已經嘗試了許多變化的工作,但我不能做這項工作:VBA SUMIFS不注日期範圍

var_sum = WorksheetFunction.SumIfs(Range("H:H"), Range("B:B"), str_client, Range("A:A"), "<=" & date_var) 

這個公式有2個條件。第二個(日期比較)將其分解並使總和= 0. date_var是Date變量。 Excel中的日期範圍被格式化爲日期。

什麼可能是錯的?

+0

好像它應該工作。如果你在Excel中輸入相同的公式,它會起作用嗎?如果你對'date_var'和'A:A'中的值進行簡單比較,其中一些比date_var'少一些? –

+0

您的日期是Excel日期格式(從1/1/1900 12:00:00 A.M.起的小時數和小時數) – user2140261

+1

這對我有用。請描述一下沒有用的東西?此外,可能有助於發佈A)更多的代碼和B)示例工作表數據。否則,公式評估。但是,如果不瞭解更多關於您認爲無效的內容,並且沒有看到您正在使用的數據,則有時不能排除故障。 –

回答

5

我有一種感覺,你有一個字符串與日期。

Date_Var = "01/01/2013" 

你可以嘗試使用CDate(CLng(將其轉換爲適當的值,如Excel存儲的天數日期過去的1900年1月1日

var_sum = WorksheetFunction.SumIfs(Range("H:H"), Range("B:B"), str_client, _ 
    Range("A:A"), "<=" & CLng(date_var)) 
+0

聽起來不錯。 –

+0

你說得對,謝謝。我之前曾嘗試過CDate,但它不起作用。我總是頭痛的日期和數字格式。這是否意味着我總是可以將其轉換爲Long並與其他日期進行比較? – ftkg

+0

是 - 將日期更改爲**一般**格式,並且您可以看到它是一個數字(如果時間也存在,則爲小數) - 例如今天實際上是41367(使用'CDbl'(如果你必須在比較中使用時間) – SeanC