Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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
Inhaltsverzeichnis

With ThisWorkbook.Names(sRng).RefersToRange ??

With ThisWorkbook.Names(sRng).RefersToRange ?
04.12.2012 16:41:30
Peter
Guten Abend
Ich habe die Lösung, versteht aber nicht ...
... weshalb mit untenstehnde Formel die letzte Spalten-Nr. korrekt ermittelt.
Weshalb erhalte ich mit der Funktion nLetzteSpalte die korrekte Spaltennumer der letzten Spalte eines Bereiches? .Cells.Count liefert doch die Anzahl Zellen eines Bereiches.
Kann mir jemand Berechnung dieser Funktion erklären?
Vielen Dank und Gruss, Peter
Function nLetzteSpalte(sRng As String) As Long    ''''Funktioniert auch, wenn ThisWorkbook  _
nicht aktiv ist
With ThisWorkbook.Names(sRng).RefersToRange
nLetzteSpalte = .Cells(.Cells.Count).Column
'Debug.Print .Name
Debug.Print .Cells.Count
'Debug.Print nLetzteSpalte
End With
End Function

https://www.herber.de/bbs/user/82888.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Debug.Print vs Function-Rückgabe
04.12.2012 16:49:40
Sheldon
Hallo Peter,
Die Funktion gibt zurück, was immer in die Variable geschrieben wird, die heißt wie die Funktion- In Deinem Fall also das, was bei 'nLetzteSpalte = ' notiert wird. Debug.Print hingegen schreibt in den Direktbereich im VBA-Explorer.
Gruß
Sheldon

Na, da bist du wohl etwas auf ...
04.12.2012 19:07:18
Luc:-?
…Abwege geraten, Sheldon! ;->
Du meinst sicher VBEditor, nicht VBA-Explorer, denn das Anzeigen der Module ist nur ein Teil des Ersteren.
Außerdem muss der benannte Bereich nicht wie die Fkt heißen, sein Name wird ja als Argument übergeben. Alles weitere steht bei Rudi. ;-)
Gruß Luc :-?

Anzeige
AW: scheint so...
04.12.2012 20:01:47
Sheldon
...als ob, Luc,
ich meinte natrl den VBEditor. Danke fürs Korrekturlesen. Aber den benannten Bereich habe ich überhaupt nicht erwähnt. Mir gings darum, dass der Rückgabewert der Funktion eben der Wert ist, der ihr übergeben wird, also nLetzteSpalte = 325 würde eben das in die beinhaltende Zelle bzw. an die aufrufende Prozedur zurückgeben. Während Debug.Print eben in das schon erwähnte Direktfenster schreibt. Ich ging davon aus, dass Peters Konfusion davon herrührte, dass am Ende seines Codes Debug.Print .Cells.Count steht, aber dennoch die gewünschte Spalte und nicht die letzte Zelle ausgegeben wird.
Gruß
Sheldon

Anzeige
Aha, ja, das war missverst'ndlich! ;-) Gruß owT
04.12.2012 21:21:49
Luc:-?
:-?

AW: With ThisWorkbook.Names(sRng).RefersToRange ?
04.12.2012 16:51:07
Rudi
Hallo,
.cells(.cells.count) ist die letzte Zelle des Bereichs.
Cells(X) liefert die Xte Zelle des Bereichs. Die Zählung beginnt links oben bis zur letzten Spalte und dann zeilenweise. Range("A:B").Cells(10).Address liefert $B$5.
Gruß
Rudi

AW: With ThisWorkbook.Names(sRng).RefersToRange ?
04.12.2012 16:59:46
Peter
Hallo Rudi
Jetzt verstehe ich das.
Danke
Peter

147 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige