Evaluate - mal geht´s und mal nicht...
02.08.2004 23:32:29
Boris
ich lese aus einer mit dem Autofilter gefilterten Spalte (A) den ersten sichtbaren Eintrag aus.
Das funktioniert einwandfrei mit
strValue = "INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
MsgBox Evaluate(strValue)
Jetzt möchte ich nur die Zeile daraus haben - und daher dachte ich: Lass doch einfach den INDEX weg:
strRow = "MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))"
MsgBox Evaluate(strRow)
Aber denkste - Pustekuchen. Letzteres gibt nen Fehler, und zwar "Fehler 2023", wenn ich es testweise mit
MsgBox CStr(Evaluate(strRow))
auswerte.
Warum denn bitteschön?
Hier der gesamte Testcode:
Option Explicit
Sub erster_autofilter_eintrag()
Dim strValue As String
Dim strRow As String
strValue = "INDEX(A:A,MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100))))"
strRow = "MIN(IF(SUBTOTAL(3,INDIRECT(""A""&ROW(2:100))),ROW(2:100)))"
MsgBox Evaluate(strValue)
MsgBox Evaluate(strRow) '---> Ergibt mit CStr(Evaluate(strRow)) den "Fehler 2023"
End Sub
Es geht mir nicht um Alternativen, sondern nur um Aufklärung, warum es einmal geht und dann wieder - mit der Zeile - nicht...?!?
Grüße Boris