Basierend auf der question von @Chips Ahoy gestellt, entschied ich mich, eine UDF zu erstellen, um den PercentRank der sichtbaren Zellen in einem Bereich zu finden.SpecialCells (xlCellTypeVisible) arbeitet nicht in UDF
Während @Chips mit meiner Syntaxkorrektur zufrieden scheint, kann ich meine UDF nicht richtig arbeiten lassen.
Wenn ich unten ausführen, lesen die beiden Adressen identisch lesen. In meinem Beispiel, das eine Formel von =VisiblePercentRank($A$2:$A$41,0.5)
verwendet, lesen beide Adressen, die zum unmittelbaren Fenster ausgegeben werden, $A$2:$A$41
, obwohl die Zeilen 3 bis 11 durch einen Autofilter verdeckt sind.
Code:
Function VisiblePercentRank(x As Range, RankVal As Double)
Debug.Print x.Address, x.Rows.SpecialCells(xlCellTypeVisible).Address
VisiblePercentRank = WorksheetFunction.PercentRank(x.Rows.SpecialCells(xlCellTypeVisible), RankVal)
End Function
Auch versucht.Rows
Entfernung:
Function VisiblePercentRank(x As Range, RankVal As Double)
Debug.Print x.Address, x.SpecialCells(xlCellTypeVisible).Address
VisiblePercentRank = WorksheetFunction.PercentRank(x.SpecialCells(xlCellTypeVisible), RankVal)
End Function
Sollte der zweite Ausgang $A$2,$A$12:$A$41
nicht gelesen oder habe ich etwas verpasst?
Verwenden von Excel/Office 2013, 64bit auf Win7, 64bit.
BRAIN FRITTIERT UPDATE
ich gefunden habe, dass mein UDF funktioniert, wenn ich es aus dem sofortigen Fenster auszuführen:
?VisiblePercentRank(range("A2:A41"),0.5)
$A$2:$A$41 $A$2:$A$11,$A$39:$A$41
0.207
Aber wenn von einer in-Zell-Formel von =VisiblePercentRank(A2:A41,0.5)
laufen:
$A$2:$A$41 $A$2:$A$41
Entfernen Sie die 'Rows.':' x.SpecialCells (xlCellTypeVisible) .Address' –
versucht, dass @ScottCraner, keine leider ändern. – CLR