2017-01-20 4 views
0

SumIf関数を使用して、文字列dailyTotalを左端に含むすべてのセルを合計します。次に、MacrosシートのセルC29をその値に設定し、それを数値と比較して次に実行されるコードを確認します。私はE列のセルの値を持っていますが、値は常にSumIfの値は常に0として返されます - Excel VBA

0としてコードを返します。

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を、CRITERIA、[RANGE_TO_SUM])。個々のセルではなく、範囲全体を使用したいと考えています。文字列 '' Daily Total: ''と '' '' ''あなたはいくつかのテストデータと期待される結果を表示できますか? –

+1

これは部分的なものであるため、コメントに調整されています。この行を削除してください: "Sheets(" Macros ")。範囲(" 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

関連する問題