2017-07-03 7 views
0

を使用しているとき、私は特定の場所である時間数を合計しようとしています。このパブリック関数でSumIfとは、私はExcelのworksheetfunctionを使用してSUMIF関数を作成しているworksheet.function SumIfと

Public Function sumif(Range As Variant, criteria As Variant, sum_range As Variant) 
On Error Resume Next 
sumif = WorksheetFunction.sumif(Range, criteria, sum_range) 
If IsError(sumif) Then 
sumif = "" 
End If 
End Function 

下記参照してください0の値を返します。特定のシステムにログオンします。私は

With Sheet9 
lngLastRow = lastRowInCol(.Columns("B"), 2) 
For lngRow = 2 To lngLastRow 
vntSiteID = .Cells(lngRow, "B") 
.Cells(lngRow, "C") = sumif(rngDS.Columns(3), vntSiteID, rngDS.Columns(7)) 
.Cells(lngRow, "D") = sumif(rngDS.Columns(3), vntSiteID, rngDS.Columns(8)) 
Next lngRow 
End With 
End Sub 
  • ことをペーストするので、必要書類を得意としないlastrowinCol機能と間違って何もこれは同じで数回成功裏に使用されていますがない私は

    Private Sub lookupWLDetails() 
    Dim lngLastRow As Long 
    Dim vntSiteID As Variant 
    Dim lngRow As Long 
    Dim rngDS As Range 
    
    With Sheet3 
    lngLastRow = lastRowInCol(.Columns("B"), 11) 
    Set rngDS = .Range(.Cells(11, "B"), _ 
    .Cells(lngLastRow, "X")) 
    End With 
    

    の下をやろうとしています何が含まれていますコードの先頭部分は、コードの下2個
  • が同じサブ
の一部であるコードの下2個から分離されています

このコードの目的は、シート9のcol Bをループすることです(これはレポート上の各サイトのリストを保持します)。シート上に保持されているサイト3コルDは9

は、私はちょうど誰もが提供できるすべてのヘルプははるかに

おかげ

をいただければ幸いです

0はすべて私のSUMIFから返された値試みを取得するすべてのエラーを受信して​​いないシートからサイトIDと一致しました

答えて

0

私は自分の質問に対する答えを最後に見つけることができました誰もがこのコードを使用して適応させたい場合や、私が持っていたのと同じ問題を抱えている場合に備えて、私は彼女にそれを分け合うと思っていました。

SumIfと機能を備えた唯一の問題は、最初の範囲の宣言

.Cells(lngRow, "C") = sumif(rngDS.Columns(3), vntSiteID, rngDS.Columns(7)) 
.Cells(lngRow, "D") = sumif(rngDS.Columns(3), vntSiteID, rngDS.Columns(8)) 

これらは

.Cells(lngRow, "C") = sumif(rngDS, vntSiteID, rngDS.Columns(7)) 
.Cells(lngRow, "D") = sumif(rngDS, vntSiteID, rngDS.Columns(8)) 
を示すべきだった