2017-01-20 111 views
0

我正在使用SumIf函数将所有包含字符串dailyTotal的单元格合计到它们的左侧。然后我在Macros表单上设置单元格C29为该值,并将其与数字进行比较以查看接下来执行的代码。我在E列单元格的值,但价值总是返回为0SumIf值始终返回为0 - Excel VBA

代码:

dailyTotal = "Daily Total:" 
Dim totalHours As Double 
Dim rng As Range: Set rng = Application.Range("Totals!E11:E100") 
Dim cell As Range 

For Each cell In rng.Cells 
    With Sheets("Totals") 
    Sheets("Macros").Range("C29").Formula = Application.SumIf(cell.Offset(, -1), dailyTotal, "") 
    Sheets("Macros").Range("C29") = totalHours 
    End With 
Next cell 

' check if command is applicable 
If totalHours > 4 Then 
+1

的SUMIF公式是错误的:SUM(RANGE ,标准,[RANGE_TO_SUM])。你想要使用整个范围而不是单个单元格。你有两个标准,字符串''日常总计:''和''''你能显示一些测试数据和预期结果吗? –

+1

调整到一个评论,因为这只是部分:删除此行:“表(”宏“)。范围(”C29“)= totalHours” – Zerk

回答

1

你可能会在这之后

Dim totalHours As Double 
Dim dailyTotal As String: dailyTotal = "Daily Total:" 
Dim rng As Range: Set rng = Application.Range("Totals!E11:E100") 

totalHours = Application.SumIf(rng.Offset(, -1), dailyTotal, rng) 
Sheets("Macros").Range("C29") = totalHours 

' check if command is applicable 
If totalHours > 4 Then ... 
+0

这工作,谢谢。显然,我是通过循环遍历所有单元而不是范围来使它复杂化。 – duberry

+0

不客气。好的编码! – user3598756