2017-06-12 10 views
0

こんにちは、私は現在、SUBTOTALを使用してVBA別名を使用してExcelでフィルタリングされた行の表示値を合計しようとしています。私の問題は、行の数がフィルタによって変わるということです。私はそれが空のセルに当たるまで行をループするコードを書こうとし、目に見える行を小計しました。どんな助けもありがとうございますExcelでフィルタリングされた行を合計する

Sub Test1() 
    Dim x As Integer 
    NumRows = Range("K15", Range("K15").End(xlDown)).Rows.Count 
    Range("K15").Select 
    For x = 1 To NumRows 
     H14 = SUBTOTAL(9,"K15" : "NumRows") 
     ActiveCell.Offset(1, 0).Select 
    Next 
End Sub 

答えて

0

このような感じですか?開始行(ここでは15)と合計が書き込まれたセル(この場合はCells(14,8)、id est、H8)を確認する必要があります。また、ワークシート(この場合はData)を定義すると便利です。

Sub Test1() 
    Dim x As Long 
    Dim lMySum As Long 
    Dim NumRows As Long 

    lMySum = 0 
    NumRows = Worksheets("Data").Cells(15, 11).End(xlDown).Row 
    For x = 15 To NumRows 
     If Not (Worksheets("Data").Rows(x).EntireRow.Hidden) Then 
      lMySum = lMySum + Worksheets("Data").Cells(x, 11).Value 
     End If 
    Next 
    Worksheets("Data").Cells(14, 8) = lMySum 
End Sub 
+0

ありがとうございます!だから私は "データ"という名前を私がデータを描く場所のワークシートに変更しましたが、私の番号はK15から始まるのではなく、常に変化するK15より1で始まることに気付きました。あなたはそれのための任意の迅速な修正を持って起こったのですか? –

+0

'もしx = 16にNumRows'が正しくあなたをundestandすれば。 – CMArg

+0

型の不一致エラーが発生しましたが、テーブルの値をチェックしましたが、それらはすべて整数なので、このエラーがどこから来ているのか分かりません。 –

関連する問題