2016-08-15 2 views
0

データのあるセルの範囲内だけで、ブランクセルと非ブランクセルをすべて指定したいとします。しかし、私はまた、O4:O18からの参照のみに限定されています。上記のサンプルから考えるとブランクセルと非ブランクセルの数を計算する

sample2sample3

、私は唯一のasdあるデータをセルにROW4から空白セルをカウントする必要があります。どんな助け?ありがとう!

カウントの使用は、空白でないセル内の空白セルを数えます。データを持つ最後の行が15であると言うと、15がデータの最後の行になり、行4から行15まではRangeの空白セルがカウントされます。

+0

が、それらはすべて空白にすることはないでしょうか?それは常に4列目から始まるのだろうか? –

+0

したがって、範囲( "O4:O18")に空白セルと空白でないセルの数を取得したいですか? –

+0

@ DarrenBartrup-Cookはい、それは常に4行目から始まり、空白のセルがデータ付きのセルまでカウントされ始めます。ありがとう – ramj

答えて

1

あなたがworksheetfunctionを使用して所望の結果を達成easelyことができ、これを試してみてください。

Sub test() 
    Dim iBlank&, iNonBlank&, rng As Range 

    Set rng = Range("O4:O" & [O4:O18].Find("*", , , , , xlPrevious).Row) 

    With WorksheetFunction 
     iNonBlank = .CountA(rng) 
     iBlank = .CountBlank(rng) 
    End With 

    MsgBox "Blank: " & iBlank & vbNewLine & "NonBlank: " & iNonBlank 
End Sub 
+0

はいこれは、空白と空白以外のセルを数えます。しかし、私が望むのは、与えられた範囲内の空白でないセル内の空白のセルだけを数えることです。ありがとう。 – ramj

+0

ああ、それはいいです、更新された投稿を参照してください – Vasily

+0

甘くて簡単です:)ありがとう! – ramj

1

あなたの目標は何かについて100%確信していません。私はあなたが "O4"から "O18"(それより小さくてもよい)までの最大範囲を持っていることを理解しています。そして、あなたは "0"からその範囲の最後の空白でないセルに行きたいと思います。細胞。それはあなたが何をしたいのか確かであれば、(説明はこれである)以下のコードを試してみてください。

Sub CountingBlankAndNonBlank() 

    Dim MyRange As Range 
    Dim LastRow As Long, TotalRange As Long 
    Dim CountBlank As Long, CountNonBlank As Long 

    'Find the last row with data in the Range("O4:O18") 
    LastRow = 19 - Range(Cells(18, 15), Cells(Rows.Count, 15).End(xlUp)).Count 

    'Set a range from "O4" to last cell with data 
    Set MyRange = Range(Cells(4, 15), Cells(LastRow, 15)) 

    'How many cells in my Range 
    TotalRange = LastRow - 3 

    'How many blank cells in my Range 
    CountBlank = MyRange.SpecialCells(xlCellTypeBlanks).Count 

    'How many non-blank cells in may range (Total - Blank) 
    CountNonBlank = TotalRange - CountBlank 

    MsgBox "There are:" & vbNewLine _ 
     & " - " & CountBlank & " blank cells" & vbNewLine _ 
     & " - " & CountNonBlank & " non-blank cells" & vbNewLine _ 
     & " - " & LastRow & " would be the lastrow" 

End Sub 
+0

空白でないセルで空白セルを数えます。しかし、列に空白以外のセルを追加しても、同じカウントが返されます。ありがとう – ramj

+0

最後の行は常に13です、それはなぜですか? – ramj

+0

正確なコードをコピーしましたか?それは私のために完全に動作します –

0

カウント空白のセル(あなたの第2例及び#N/Aに戻り3であれば、空白すべてのセル):(あなたの2番目の例では戻り6及び1仮にセルブランク)

=COUNTBLANK($O$4:INDEX($O$4:$O$18,LOOKUP(2,1/($O$4:$O$18<>""),ROW($O$4:$O$18))-3)) 

カウント非空白セル:

=COUNTA($O$4:INDEX($O$4:$O$18,LOOKUP(2,1/($O$4:$O$18<>""),ROW($O$4:$O$18))-3)) 

こちらから検索式を使用:あなたはデータを最初のセルに開始セルからカウントしている場合What is this programmer doing with his Lookup function?

関連する問題