Wie zähle ich die Anzahl der nicht-Nullen in excel?

Ich versuche ein makro machen, das wird gehen durch eine gesamte Arbeitsmappe, und die Anzahl der Tage, die ein Mitarbeiter gearbeitet hat. Die Blätter haben die Arbeit aufgeteilt in Tage, so dass alle T zu finden ist, die Tage, die nicht null sind. Ich habe versucht, zu verwenden COUNTIF(A11:A12,">0") und ich bekomme die Fehlermeldung Expected : list separator or ). Ich bin mit einem For Each Schleife über die Blätter. Ich würde gerne alle Informationen, die auf ein neues Tabellenblatt am Ende der Arbeitsmappe mit den Namen der Mitarbeiter und die geleisteten Arbeitstage. Ich bin sehr neu in visual basic, bin aber ganz gut mit c#.

Ich jetzt so weit gekommen,

Option Explicit

Sub WorksheetLoop2()
    ' Declare Current as a worksheet object variable.
    Dim Current As Worksheet
    Dim LastColumn As Integer

    If WorksheetFunction.CountA(Cells) > 0 Then
    ' Search for any entry, by searching backwards by Columns.
        LastColumn = Cells.Find(What:="*", After:=[A1], _
        SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious).Column
    End If

    ' Loop through all of the worksheets in the active workbook.
    For Each Current In Worksheets
        Current.Range("A27") = Application.WorksheetFunction.CountIf(Current.Range(Cells(11, LastColumn), Cells(16, LastColumn)), ">0")
        Current.Range("A28") = Application.WorksheetFunction.CountIf(Current.Range("Al17:Al22"), ">0")
    Next
End Sub

Wenn ich diese ausführe bekomme ich eine Fehlermeldung method range of object'_worksheet' failed. Ich habe auch noch nicht in der Lage, einen Weg zu finden, um die Informationen bekommen, die alle auf die Zusammenfassung.

  • Wenn Sie brauchen, VBA, Ort Application.WorksheetFunction. vor ZÄHLENWENN. Wenn Sie nicht möchten, VBA ist es möglich, daraus eine Lösung nur mit Formeln.
  • nehmen, was Scott schlug vor, 1 Schritt nach vorne.. verwenden Sie diese Application.WorksheetFunction.CountIf(Range("A11:A12"), ">0")
  • Ich bin mit diesem und es nicht werfen nicht alle Fehler, aber es spielt nicht die Anzahl der zahlen in der a27, wie es sollte "Sub WorksheetLoop2()' Deklarieren der Aktuellen als Arbeitsblatt-Objekt-variable. Dim Strom As Worksheet ' Schleife durch alle Arbeitsblätter in der aktiven Arbeitsmappe. Für Die Jeweils Aktuellen Arbeitsblätter In A27 = Anwendung.WorksheetFunction.CountIf(Range("A11:A12"), ">0") Next End Sub'
  • siehe änderungen unten meine Antwort, basierend auf dieser kommentierte Sie zuletzt gebucht
Schreibe einen Kommentar