Application.CountIf()
をExcelマクロで使用しようとしていますが、カウントが返されません。数値として0を返します。Excel VBA Application.CountIf()は他のマクロと同じように動作しません
Application.CountIf()
を別のマクロで何回か使用したので、この混乱があります。他のマクロから
の作業コード:新しいマクロの
Sub newer_COA()
Sheets("BATCH NUMBERS").Select
'Count total of column CO
count = Application.CountIf(Columns(93), "1")
End Sub
コード - sum_litres()
Sub sum_litres()
Workbooks("Small Fill.xlsm").Activate
Sheets("Small Fill").Select
'Count total Machine one entries in column F
Dim Machine_one_count As Integer
Machine_one_count = Application.CountIf(Columns(6), "1")
Workbooks("Small Fill Analysis.xlsm").Activate
Sheets("Sheet1").Select
Msg = Machine_one_count & " Number of entries from Machine one"
MsgBox Prompt:=Msg
End Sub
新しいマクロからの出力 - sum_litres()
0 Number of entries from Machine one
この新しいマクロsum_litres()
は、Small Fill Analysis
と呼ばれる別のシートに作成され、Small Fill.xlsm
というデータが表示されます。 sum_litres()
の先頭では、以下の関数を使用してシートSmall Fill.xlsm
が開いているかどうかを確認し、シートがまだ開いていない場合は正常に開きます。このコードが正常に動作するので、私は上記の質問にそれを含めませんでした。
'Calls function IsWorkBookOpen() to check if the required spreadsheet is open
Ret = IsWorkBookOpen("Small Fill.xlsm")
If Ret = True Then
Workbooks("Small Fill.xlsm").Activate
Sheets("Small Fill").Select
Else
'Open required spreadsheet
Workbooks.Open FileName:="Small Fill.xlsm", ReadOnly:=True
Sheets("Small Fill").Select
End If
Function IsWorkBookOpen(ByVal FileName As String) As Boolean
Dim TargetWorkbook As Workbook
Dim IteratorWorkbook As Workbook
For Each IteratorWorkbook In Application.Workbooks
If IteratorWorkbook.FullName = FileName Then
Set TargetWorkbook = IteratorWorkbook
End If
Next
If Not TargetWorkbook Is Nothing Then
If TargetWorkbook.ReadOnly Then
IsWorkBookOpen = True
Exit Function
End If
End If
End Function
ご意見ありがとうございました!
あなたはシート「小塗りつぶしの列6で確認してください任意の行です"は" 1 "の値を持っていますか?また、テキストまたは数値として書式設定されたサンプルの列はありますか? – Moacir
これがCountIfの問題に関連しているかどうかはわかりませんが、IsWorkbookOpen関数はFileNameとIteratorWorkbook.FullName(フルパスを指定しています)を比較しているので、フルパスアドレスを要求しています。 IsWorkbookOpen( "Small Fill.xlsm")として呼び出すと、常にfalseが返されます。 –
Thanks @Moacirシート「Small Fill」のColumn 6(F)には値 "1"の2つがあります。使用されているサンプルの列は、「一般」としてフォーマットされ、値はドロップダウンから選択されます。私は小さな小包でデータのフォーマットを知らなかったので、これは私のシートではないので、シートの小文字列をチェックして、小文字の列6も「一般」としてフォーマットされていますが、値はドロップダウンから選択されていません。この情報は理にかなっていますか? –