@Chips Ahoyによって提出されたquestionに基づいて、範囲内の可視セルのPercentRankを見つけるためにUDFを作成することにしました。SpecialCells(xlCellTypeVisible)がUDFで動作しない
@Chipsは構文の修正に満足しているようですが、実際にはUDFを正しく動作させることができません。
以下を実行すると、2つのアドレス出力が同じになります。私の例では、=VisiblePercentRank($A$2:$A$41,0.5)
の式を使用して、直下ウィンドウに出力された両方のアドレスが$A$2:$A$41
と表示されますが、行3〜11はオートフィルタによって隠されています。
コード:
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
または.Rows
を削除しようとした:
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
第二の出力は$A$2,$A$12:$A$41
を読んだり、私が何かを見逃しているべきではないでしょうか。
Excel/Office 2013を使用して、Win7で64ビット、64ビットを使用します。
私はすぐに窓からそれを実行した場合、私のUDFが機能することを発見した
BRAINのフライUPDATE:
?VisiblePercentRank(range("A2:A41"),0.5)
$A$2:$A$41 $A$2:$A$11,$A$39:$A$41
0.207
しかし=VisiblePercentRank(A2:A41,0.5)
のセル内の式から実行する場合:
$A$2:$A$41 $A$2:$A$41
'Rows.'削除:' x.SpecialCells(xlCellTypeVisible)を.Address' –
はその@ScottCraner、残念ながらありません変更をしようとしました。 – CLR