[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『count関数をVBAで使いたい』(ぽんとりん)
test.xlsxファイルのA列にあるデータ数(シートはひとつしかありません)をcount関数を使って取得したい。
以下のプログラムですが、cnt変数は0となりA列のデータ数を数えてくれません。エラーもでません。以前はこのプログラムで動いていました。ファイルの保存場所をネットワークドライブからCドライブに変えたところうまくいかなくなりました。今まで動いていた環境がなくなってしまったので、元に戻して動く状況も作れません。ご指導お願いします。
Dim targetBook As Workbook
'csvファイルをエクセルで開く Set targetBook = Workbooks.Open("C:\test.csv") '現在のエクセルファイルの削除 Kill "C:\test.xlsx" 'xlsx形式で保存 targetBook.SaveAs Filename:="C:\test.xlsx",FileFormat:=xlOpenXMLWorkbook Dim cnt As Long cnt = WorksheetFunction.Count(ActiveSheet.Range("A:A")) targetBook.Close
< 使用 Excel:Excel2013、使用 OS:Windows8 >
>cnt = WorksheetFunction.Count(ActiveSheet.Range("A:A")) を cnt = WorksheetFunction.Count(targetBook.Worksheets(1).Range("A:A")) としたらどうなるだろうか? (ねむねむ) 2018/08/01(水) 12:25
少しわかったことがあります。
test.xlsxファイルでcount(a:a)で表示させたところ、なぜか0となってしまいます。
count(b:b)だとb列はカウントされます。
そちらを少し調べてみます。
(ぽんとりん) 2018/08/01(水) 12:37
COUNT関数は数値の数を数える関数だが(文字列も含めて数えるのはCOUNTA関数)A列は数値なのだろうか? (ねむねむ) 2018/08/01(水) 12:40
Sub test() Dim WF As Object: Set WF = WorksheetFunction Const MyFile As String = "C:\test" Dim cnt As Long
With Workbooks.Open(MyFile & ".csv")
'killしなくても上書き保存すればよいだけでは? 'あと拡張子は省略してもいいかも Application.DisplayAlerts = False .SaveAs _ Filename:=MyFile, _ FileFormat:=xlOpenXMLWorkbook Application.DisplayAlerts = True
cnt = WF.Count(.Worksheets(1).Range("A:A")) MsgBox .Name & "のA列を対象にCount関数を実行したところ" & vbCrLf & cnt & " でした"
.Close
End With End Sub (もこな2) 2018/08/01(水) 15:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.