.find findet nicht, außer nach VBE Pause & Reset
02.02.2017 11:26:00
Lisa
ich sitze seit ungefähr einer Woche vor folgendem Problem:
Public Sub HourCounting(auftraegeVar As Variant)
Dim indices As Range
Dim startrow As Integer, endrow As Integer
Dim startDate As String, endDate As String
'Do stuff that works
' Get start and end month in which to look for names
startDate = Worksheets("Main").cmbPastDate.Value
endDate = Worksheets("Main").cmbCurrentDate.Value
' Get start and end month in which to look for names
startDate = CDate(Worksheets("Main").cmbPastDate.Value)
endDate = CDate(Worksheets("Main").cmbCurrentDate.Value)
' ------------------- Search in all the workbooks for names, orders and months ----------------- _
_
_
For i = 1 To UBound(auftraegeVar, 1)
' Adopt range to be looked in for each order according to user specified months
If Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=startDate, LookIn:=xlValues, LookAt:= _
_
_
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) _
_
Is Nothing Then
startrow = 0
Else
startrow = Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=startDate, LookIn:= _
xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, _
SearchFormat:=False).row
End If
If Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=endDate, LookIn:=xlValues, LookAt:= _
_
_
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) _
_
Is Nothing Then
endrow = 0
Else
endrow = Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=endDate, LookIn:=xlValues, _
_
_
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat: _
_
=False).row
End If
' Do stuff in Loops that works
Next i
End Sub
In diesem Makro läuft eigentlich alles wunderbar, außer der Tatsache, dass er für
Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=endDate, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
Nothing zurückgibt, also nicht findet (selbiges auch mit .Find(What:=startDate)). Außer, wenn man im VBE manuell alle Makros pausiert und resetted. Danach läuft alles tadellos. Ich habe bereits alle anderen Makros die im Hintergrund laufen könnten eliminiert und überprüft ob alle Variablen für die .find Funktion Werte liefern, was sie auch tun.
Jetzt ist die Frage, was läuft falsch, dass ich immer erst pausieren und dann resetten muss? (Was an sich ja nciht sooo schlimm wäre, wenn es dabei nicht immer automatisch den VBE öffnen würde)