[[20140114164313]] 『WorksheetFunction.CountAで空白のはずが1をカウメx(コウコウ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『WorksheetFunction.CountAで空白のはずが1をカウントしてしまう。』(コウコウ)

G5から指定した数の範囲が空白かどうか調べるマクロを作りました。
マクロで行う作業の中の一部です。

range("G5")のセルを基準に、「指定」が2の場合、Range("G5:H5")の範囲で空白ではない数を数えようと思っています。

しかし、以下の記述では、Range("G5:H5")の範囲が空白にもかかわらず、W = 1 という結果になってしまいます。

なにか不手際があるのでしょうか?
ご教授いただければ幸いです。

Sub テスト()
指定 = 2

    Range("G5").Select
    W = WorksheetFunction.CountA(Range(ActiveCell.Address) & ":" & Range(ActiveCell.Offset(0, 指定 - 1).Address))

Range("P1").Value = W
End Sub

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 CountA関数は、数式で "" が返っているセルがあるとそれもカウントしますよ?
(seiya) 2014/01/14(火) 17:32

seiya様、早速のご指導ありがとうございます。
セルの値を一旦削除してみましたが、1をカウントしてしまいました。

Sub テスト()
  指定 = 2
  Range("G5:H5").Select

    Selection.ClearContents
    Range("G5").Select
    W = WorksheetFunction.CountA(Range(ActiveCell.Address) & ":" & Range(ActiveCell.Offset(0, 指定 - 1).Address))
Range("P1").Value = W 
End Sub

 W = WorksheetFunction.CountA(Range(ActiveCell.Address) & ":" & Range(ActiveCell.Offset(0, 指定 - 1).Address)) という記述から、下のテスト2の如く、WorksheetFunction.CountA(Range("G5:H5")) に戻すと、正しく0とカウントしました。

WorksheetFunction.CountA(Range(ActiveCell.Address) & ":" & Range(ActiveCell.Offset(0, 指定 - 1).Address))’・・・という記述が、WorksheetFunction.CountA(Range("G5:H5")) に置き換わらないようです。

Sub テスト2()

    Range("G5:H5").Select
    Selection.ClearContents
    指定 = 2
    Range("G5").Select
    W = WorksheetFunction.CountA(Range("G5:H5"))

    Range("P1").Value = W

End Sub

(コウコウ) 2014/01/14(火) 17:55


 あまり深く読んでいませんでしたね

 W = WorksheetFunction.CountA(Range(ActiveCell, ActiveCell.Offset(0, 指定 - 1)))

 ですか?
(seiya) 2014/01/14(火) 18:59

    W = WorksheetFunction.CountA(Range(ActiveCell.Address & ":" & ActiveCell.Offset(0, 指定 - 1).Address))

でしょ
(あかさな) 2014/01/14(火) 19:25


 この場合 Address/Offset よりも Resize プロパティで指定した方が簡単

 W = WorksheetFunction.CountA(ActiveCell.Resize(, 指定))
(seiya) 2014/01/14(火) 19:45

seiya様 あかさな様
ありがとうございました。
勉強になりました。
今後ともご指導お願いいたします。
(コウコウ) 2014/01/14(火) 22:08

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.