Excel VBA Application.CountIf () no funciona como en otras macro

Estoy tratando de usar Application.CountIf() en una macro de Excel y no está devolviendo un conteo. Devuelve el número como 0.

Encuentro esto confuso porque he usado Application.CountIf() varias veces en otra macro.

Código de trabajo de otra macro :

 Sub newer_COA() Sheets("BATCH NUMBERS").Select 'Count total of column CO count = Application.CountIf(Columns(93), "1") End Sub 

Código de nueva macro – 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 

Salida de macro nuevo – sum_litres()

 0 Number of entries from Machine one 

Estoy creando esta nueva macro sum_litres() en una hoja separada llamada Small Fill Analysis que obtiene la hoja Small Fill.xlsm para mirar los datos. Al comienzo de sum_litres() utiliza la function siguiente para verificar si la hoja Small Fill.xlsm está abierta y la abre con éxito si la hoja no está abierta. Como este código funciona bien, no lo incluí en mi pregunta anterior.

 'Calls function IsWorkBookOpen() to check if the requinetworking spreadsheet is open Ret = IsWorkBookOpen("Small Fill.xlsm") If Ret = True Then Workbooks("Small Fill.xlsm").Activate Sheets("Small Fill").Select Else 'Open requinetworking 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 

¡Muchas gracias por las sugerencias!

Sospecho que el problema es la location de la macro, pero la solución es simplemente no seleccionar cosas, sino referirse a los ranges directamente:

 Sub sum_litres() 'Count total Machine one entries in column F Dim Machine_one_count As Integer Machine_one_count = Application.CountIf(Workbooks("Small Fill.xlsm").Sheets("Small Fill").Columns(6), "1") Msg = Machine_one_count & " Number of entries from Machine one" MsgBox Prompt:=Msg End Sub