Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBS Funktion soll Range Obj. zurückgeben

VBS Funktion soll Range Obj. zurückgeben
27.06.2005 16:40:29
GothicFiction
Liebes Forum,
ich habe jetzt bereits seit einigen Tagen und Versuchen dass Problem, dass eine Funktion einfach nicht das machen will, was ich mir eigentlich erhofft habe.
Sie soll mit zwei Integers, eine für Zeile, eine für Spalte, gefüttert ein Range Objekt von der Anfangs bis zur letzten gefüllte Zelle erzeugen und dieses zurückliefern, so dass es durch eine Andere Funktion durchsucht werden kann. Der relevante Code:
'Funktion erstellt Range-Objekt, das durchsucht werden soll
'Funktion funktioniert nicht wie ichs mir dachte :-(

Function bestimme_bereich(ByVal row As Variant, ByVal col As Variant)
Dim last_row As Variant
last_row = Cells(Rows.Count, col).End(xlUp).row
Set bestimme_bereich = ActiveSheet.Range(Cells(row, col), Cells(last_row, col))
End Function

'Funktion sucht Anzahl der Übereinstimmungen
'in bereich cell mit dem wert datum

Function suche_datum(ByVal rngBereich As Range, ByVal datum As String)
Dim cell As Variant, i As Integer
i = 0
For Each cell In rngBereich
If cell.Value = datum Then
i = i + 1
End If
Next
suche_datum = i
End Function


Sub Datumssuche()
'Spalte U test
bereich = bestimme_bereich(101, 21)
colU = suche_datum(bereich, "TT.MM.JJJJ")
a = Cells(Rows.Count, 1).End(xlUp).row + 1
Cells(a, 2).Value = colU
End Sub

Im Bezug auf die Funktion bestimme_bereich in der Zeile
Set bestimme_bereich = ActiveSheet.Range(Cells(row, col), Cells(last_row, col))
erscheint die Fehlermeldung:
- Laufzeitfehler "91" Objektvariable oder With-Blockvariable nicht festgelegt
Was mache ich falsch, wieso ist das falsch, wie wäre es richtig, warum?
Vielen Dank schon einmal
GothicFiction

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBS Funktion soll Range Obj. zurückgeben
27.06.2005 17:11:07
Boris
Hi,
arbeite mal mit Option Explicit - dann wärst du schon mal drüber gestolpert, dass u.a. die Variable bereich nicht deklariert wurde.
Und dann wiederum wärst du wohl dahingekommen, dass es eine Variable des Typs Range hätte sein sollen, der man wiederum Werte mit der Set-Anweisung zuweist...;-)
Dieses vereinfachte Beispiel läuft problemlos durch:
Option Explicit

Function bestimme_bereich(ByVal row As Variant, ByVal col As Variant)
Dim last_row As Variant
last_row = Cells(Rows.Count, col).End(xlUp).row
Set bestimme_bereich = ActiveSheet.Range(Cells(row, col), Cells(last_row, col))
End Function


Sub aufruf()
Dim bereich As Range
Set bereich = bestimme_bereich(1, 2)
MsgBox bereich.Address
End Sub

Grüße Boris
Anzeige
AW: VBS Funktion soll Range Obj. zurückgeben
27.06.2005 17:23:10
GothicFiction
Hallo Boris,
vielen Dank für deine Antwort, die Zeile mit dim bereich as range habsch beim code kürzen aus Versehen mit rausgeworfen, aber der Aufruf von bestimme Bereich mittels set bereich = bestimme_bereich (x, y) schien der Knackpunkt zu sein, damit funktionierts *freu* ich habe immer an der falschen Stelle gesucht, weil er in der Funktion gemeckert hat!
LG
GothicFiction

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige