Ich habe ein Problem mit der Countif-Funktion in VBA (die letzten zwei Zeilen des Codes). Es muss bestimmte Werte in einem bestimmten Bereich berechnen, aber es zählt absolut jeden Wert als mp3 und nichts als mp4.VBA CountIf Problem
Das seltsamste ist, dass, wenn ich die Prozedur in ein neues separates Modul kopieren, ohne Variablen zu übergeben, alles richtig funktioniert und mir die richtigen Werte zurückgibt. Was ist hier falsch? Dank
Private Sub FindValue(ByVal fileno As String, ByVal deadline As String)
Dim i As Integer
Dim xWs As Worksheet
Dim rng As Range
Dim olApp As Object
Dim olMail As Object
Dim var As Integer
Dim user As String
Dim uplDate As String
Const olMailItem = 0
Dim lastrow As Long
Dim mp3 As Long
Dim mp4 As Long
Sheets("Add_User_ID").Select
var = Sheets("Add_User_ID").Range(("A2"), Sheets("Add_User_ID").Range("A2").End(xlDown)).Rows.Count
If fileno = "" Then
fileno = InputBox("File number")
End If
If deadline = "" Then
deadline = InputBox("Deadline, any format(e.g. 27th of August EOD)")
End If
uplDate = Format(Date, "YYYYMMDD")
For i = 2 To var + 1
user = Sheets("Add_User_ID").Cells(i, "A").Value
Sheets("allocation").Select
With ActiveSheet
.AutoFilterMode = False
.Range("A:I").AutoFilter
.Range("A:A").AutoFilter field:=1, Criteria1:=user
End With
Sheets("allocation").Range("A1").Select
Set rng = ActiveCell.CurrentRegion
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
rng.Copy Destination:=xWs.Range("A1")
lastrow = xWs.Cells(Rows.Count, 2).End(xlUp).Row - 1
mp3 = WorksheetFunction.CountIf(Range(Cells(2, 4), Cells((lastrow + 1), 4)), 3)
mp4 = WorksheetFunction.CountIf(Range(Cells(2, 4), Cells((lastrow + 1), 4)), 4)
Dank, das Makro selbst richtig funktioniert, wird das Problem auf die Stufe mit MP3-und MP4-Berechnung. es berechnet den richtigen Bereich, wobei wir sagen, 250 Zellen mit Wert 3 und 500 mit Nummer 4, aber Countif für Nr 3 gibt mir das Ergebnis von 750 und Countif von Nr 4 gibt den Wert 0 zurück, was absolut falsch ist. selbst wenn ich den Code a/t deine Empfehlungen aktualisiert habe, zählt es immer noch nicht richtig :( – muahahahh
@muahahahh - hast du es geändert, das '.' und das' With' hinzugefügt? – Vityata