Wegen bekundeten Interesses folgt hier ...
21.07.2015 04:13:55
Luc:-?
…die ZweitVeröffentlichung der mit dem OX/CP-Forum untergegangenen UDF NoErrRange (weitergehende Ausführungen hierzu nebst Bspp sind ab hier im verlinkten Thread zu finden):
Rem Erzeugt ggf 1 unzusammenhängd Bereich (MehrfachAuswahl)
' aus Bezug lt Arg1 ohne darin uU enthaltene FehlerWerte;
' hilfreich b.Fktt, d.nur Bereiche ohne FWerte, aber auch
' unzusammhängende verarbeiten können, bspw TEILERGEBNIS;
' Datenfeld-verarbeitde Fktt kommen so idR ohne MxFmlForm
' aus; Arg1 aus nur 1 Zelle wird unbehandelt übnommen, b.
' VektorForm wird auch b.solitärer FktsVerwendg in MxFmln
' richtig Ergebnis geliefert, b.MatrixForm müssen d.Werte
' idR m.INDEX/Var2 aus d.unzushgd ErgebnisBereich gelesen
' wdn; m.Arg2=WAHR/0 wird d.Ergebn auf sichtbare Zellen
' beschränkt, wobei dies b.Ausblenden d.Zelle m.der d.Fkt
' enthaltenden Fml dort Anzeige d.StandardFWerts bewirkt;
' Achtung! Fkt benötigt b.ggf verlangter AutoAktualisierg
' d.Nicht-Berücksichtigg ausgeblendet Zellen ExternAnstoß
' in mindest 1er sie enthaltenden Fml - Arg2 dort ggf als
' 1^JETZT() o.ä. notieren -, damit sie auch unabhängig v.
' evtl and Berechngg auf [F9] bzw Edit 1er beliebig Zelle
' reagiert, was generell v.Arg2 abhängt: WAHR/0 -> par-
' tielle Volatilität zur Erzielg dss speziell Verhaltens.
' Vs1.2 -LSr.CyWorXxl -cd:20150710 -1pub:20150721herber(/11oxCp) -lupd:20150715n
Function NoErrRange(Bereich As Range, Optional ByVal nurVisZ As Boolean) As Range
Dim xZ As Range
Application.Volatile nurVisZ
If Bereich.Cells.Count = 1 Then Set NoErrRange = Bereich: Exit Function
For Each xZ In Bereich
If Not IsError(xZ) Then
If Not NoErrRange Is Nothing Then
If nurVisZ Then
If Not (xZ.EntireRow.Hidden Or xZ.EntireColumn.Hidden) Then _
Set NoErrRange = Union(NoErrRange, xZ)
Else: Set NoErrRange = Union(NoErrRange, xZ)
End If
ElseIf nurVisZ Then
If Not (xZ.EntireRow.Hidden Or xZ.EntireColumn.Hidden) Then _
Set NoErrRange = xZ
Else: Set NoErrRange = xZ
End If
End If
Next xZ
End Function
Die UDF kann nur als Argument von XlStandard-Fktt, die auch unzusammenhängende ZellBereiche akzeptieren, verwendet wdn. Neuere Fktt wie ZÄHLENWENN und ihre neuesten Erweiterungen auf -S (ab Xl12/2007) gehören nicht dazu!
Luc :-?