Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
360to364
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
360to364
360to364
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Range als Rückgabewert???

Range als Rückgabewert???
07.01.2004 14:55:25
Ulrich
Hallo,
ich möchte einen Range als Eingabe einer Funktion
und nach Bearbeitung der Werte wieder zurückgeben.
(Anwendung: =ZÄHLENWENN(test(A1:A6);"=1"))
Mein erster Versuch war wie folgt:

Function test(ByVal ArrayIn As Range) As Range
Dim element As Range
For Each element In ArrayIn
ArrayIn.Value2 = 1 'an Stelle von 1 Berechnung einfügen
Next element
test = ArrayIn
End Function

Jedoch bekomme ich einen Fehler(1004) bei "ArrayIn.Value2 = 1".
Kann mir jemand auf die Sprünge helfen, was ich falsch mache?
Danke,
Ulrich.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range als Rückgabewert???
07.01.2004 15:23:38
Michael Scheffler
Hi,
Also ich weiß nicht, was das Ganze soll, aber eine Objektvariable wie einen Range weist man mit Set zu.
Gruß
Micha
AW: Range als Rückgabewert???
07.01.2004 15:29:14
Matthias G
Hallo Ulrich,
Ich nicht getestet, aber wenn der Range mehrere Zellen umfasst, funktioniert die Eigenschaft .Value nicht. So sollte es gehen:
For each element in ArrayIn
element.Value2 = 1 '...
next element
Und weiter unten müsstest Du, falls ein Fehler kommt, schreiben:
Set test = ArrayIn
Gruß,
Matthias
AW: Range als Rückgabewert???
07.01.2004 16:24:13
Ulrich
Hallo,
natürlich muss es element.Value2 = 1, ... lauten.
Zur weiteren Erläuterung:
(Anwendung: =ZÄHLENWENN(RundeAufGanzeZahl(A1:A6);"=1"))
Ich möchte den Inhalt eines Bereichs runden (ohne diese
gerundeten Werte in die Tabelle zu schreiben) und diesen
Bereich zur weiteren Verarbeitung bereitstellen.
Mfg,
Ulrich
Anzeige
Ohne UDF
07.01.2004 16:44:17
Martin Beck
Hallo Ulrich,
dazu brauchst Du keine benutzerdefinierte Funktion, folgende Matrixformel tut's auch:
=SUMME(1*(RUNDEN(A1:A6;0)=1))
Eingabe mit STRG-SHIFT-ENTER, nicht mit ENTER abschließen.
Gruß
Martin Beck
AW: Ohne UDF
07.01.2004 17:28:03
Ulrich
Hallo Martin Beck,
vielen Dank für den Tipp mit der Matrixformel. Das hilft
mir auf jeden Fall weiter.

Kann mir jetzt noch jemand sagen, weshalb die Zuweisung
"element.Value2 = 1" mit Anwendungs- oder objektdefinierter
Fehler (Fehlernummer 1004) endet?

Function GanzWerte(ByVal ArrayIn As Range) As Range
Dim element As Range
Dim antwort As Integer
On Error GoTo ErrorHandler:
For Each element In ArrayIn
element.Value2 = 1 'an Stelle von 1 Berechnung einfügen
Next element
Set GanzWerte = ArrayIn
Exit Function
ErrorHandler:
antwort = MsgBox(Err.Description & " " & Err.Number, 0, "Error")
Set GanzWerte = ArrayIn
End Function

Vielen Dank
Ulrich
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige