Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Index u. Match

Index u. Match
15.03.2007 23:52:21
Andreas X

Was mach' ich hier falsch?


Function Ergebnis (a)
Dim Bereich1 As Range, Bereich2 As Range
Set Bereich1 = Range("Arbeitsblattbereichsname1").Value
Bereich2 = Application.WorksheetFunction.Index(Bereich1, 1, 1)
Ergebnis = Application.WorksheetFunction.Match(a, Bereich2, 0)
End Function

Da scheint irgendwie in der Syntax oder den Definitionen was verkehrt zu sein, aber ich komme nicht d'rauf. Weiß' da jemand von Euch weiter?
Gruß,
Andreas X

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kleine Ergänzung ...
16.03.2007 00:11:48
Andreas X
a beinhaltet Text und keine Zahl - falls das wichtig ist zu erwähnen!
Ich hab' die Zeilen auch mal zusammengefasst, aber das Resultat ist weiterhin "#WERT!" :o(
Die Zusammenfassung:

Function Ergebnis (a)
Ergebnis = Application.WorksheetFunction.Index(Arbeitsblattbereichsname1, _
Application.WorksheetFunction.Match(a, _
Application.WorksheetFunction.Index(Arbeitsblattbereichsname1, 1, 1) _
, 0), _
2)
End Function

Hoffentlich weiß eine(r) von Euch Abhilfe!
Mit Dank im Voraus,
Andreas X
AW: weitere Ergänzung ...
16.03.2007 01:00:06
Andreas X
Bin eine kleine Erkenntnis weiter: Der Teil
Application.WorksheetFunction.Index(Arbeitsblattbereichsname1, 1, 1)
muss korrekterweise lauten
Application.WorksheetFunction.Index(Arbeitsblattbereichsname1, , 1)
weil ja die gesamte Spalte 1 (und nicht nur die Zeile 1 in der Spalte 1) verwendet werden soll.
Nur, die "1" beim Zeilenargument hatte ich zwischendurch mal dort hereingesetzt, weil ohne Argument an der Stelle dann die Fehlermeldung kommt "Fehler beim Kompilieren. Argument ist nicht optional."
Was mach' ich nun? Wie kann ich denn nun das Argument für die Zeile weglassen, so dass die gesamte Spalte 1 für die weitere Berechnung verwendet wird?
Gruß,
Andreas X
Anzeige
all, all, all!
16.03.2007 01:18:28
Andreas X
Ich bin platt: irgendwie dachte ich mal, ich tippe mal für das genannte Argument einfach das Wort "all" ein und siehe da: es funktioniert! Nun wird die gesamte Spalte weiter verwendet; prima.
Wo hätte ich das denn nachlesen können? Ich habe keinen solchen Hinweis finden können.
Gruß,
Andreas
AW: all, all, all!
16.03.2007 02:16:25
Hans W. Herber
Hallo Andreas,
wenn Du in Deinen Funktion nicht sauber arbeitest, musst Du Dich über erstaunliche Ergebnisse nicht wundern.
Es heisst nicht:

Function Ergebnis (a)

Sondern:
Function Ertebnis(iA as Integer) as Integer
Dass Du Deine Bereichsvariablen deklarierst ist zwar löblich. Wenn Du sie aber dann nicht mit Set belegst, machst Du den guten Vorsatz wieder kaputt.
Gruss hans
Anzeige
AW: Deklaration
16.03.2007 10:07:14
Andreas X
Hallo Hans,
vielen Dank für Deinen Hinweis. Meine VBA-Kenntnisse sind eben noch bescheiden, nur Anfänger-Stückwerk auf Basis von Suchen und Versuchen.
Du hast mir mit dem Hinweis den Blick erweitert, so dass jetzt wieder was dazugelernt habe, worauf ich auch achten muss (und dann auch gründlicher vorgehen kann).
Das Thema und die Bedeutung der "Deklaration" war mir noch so gewahr. Gibt es da irgendwo eine zusammenfassende Übersicht, wann man was machen muss?
Und wann Set kommt und wann nicht habe ich auch noch nicht durchschauen können. Kannst du oder jemand anderes hierzu auch noch einen Hinweis geben?
Einen besten Tag Dir,
Andreas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige