Letzte nicht-leere Zeile, Spalte, Zelle per VBA erkennen
Autor
Nachricht
berndb1
Im Profil kannst Du frei den Rang ndern
Verfasst am: 23. Feb 2013, 12:50 Rufname:
Wohnort: Hohenbrunn
Version: Office 2010
Schon wieder diese Frage... Das Thema wurde in diversen Foren schon x-mal behandelt. Leider habe ich bisher keine Lsung gefunden, die in allen mir wichtigen Fllen funktioniert. Folgende Methoden zum Auffinden der letzten nichtleeren Zeile werden meist vorgeschlagen (gilt fr das Auffinden der Spalten und Zellen analog):
(1) letzteZeile = (What:="*", After:=Range("A1"), LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
(2) letzteZeile = edRange. SpecialCells(xlCellTypeLastCell)
(1) funktioniert fast immer, aber z. B. nicht, wenn die letzten Zeilen mit einem Filter ausgeblendet wurden. Dann wird die letzte sichtbare Zeile zurckgeliefert. Excel VBA bis letzte Zelle markieren - Supportnet Forum. Noch schlimmer: je nach Excel-Version kommen hier mir unverstndliche Werte wie z. =1
Das Verhalten kann man umgehen, indem vor dem Aufruf von letzteZeile den Filter entfernt.
- Vba letzte zeile play
- Vba letzte zeile 1
- Vba letzte zeile in spalte
Vba Letzte Zeile Play
Ein Klick auf den Link in der ersten (linken) Spalte startet
den Download von unserem Server. Hinweise:
[expand]
Sehr viele der hier angebotenen Dateien sind als *. zip gepackt. Das geschieht nicht aus Gründen der Dateigröße sondern einerseits
wegen des Komforts beim herunter laden vom Server und andererseits zur Datensicherheit. Teilweise sind in gepackten Code- Files mehrere Einzeldateien enthalten. Es gelten dann die gleichen Regeln wie bei einzeln
angebotenen Downloads. Typischerweise haben die ursprünglichen Files diese Endung:
*. txt: Dateien im reinen Textformat. Öffnen Sie diese Formate in einem reinen Text-Editor wie beispielsweise Notepad++ oder (vorzugsweise)
Notepad++++
[u. a.
hier in Deutsch] (aber
nie
in einer Textverarbeitung wie Word, Writer, …). Vba letzte zeile in spalte. Kopieren Sie den Code-Text und fügen Sie ihn dann im VBA -Editor a passender
Stelle ein. *. bas: Typischerweise sind das exportierte Funktionen eines allgemeinen Moduls. Das Einfügen im VBA -Editor gestaltet sich recht
einfach:
Datei | Datei importieren
oder
Strg M
und automatisch wird alles für Sie erledigt.
Vba Letzte Zeile 1
So, ich bin an einem Projekt arbeiten und ich versuche, mein VBA-code, um nach unten ziehen die Formel, die in Zelle M3 alle der Weg nach unten an das Ende des Datensatzes. Ich bin mit Spalte L als meine Basis, um zu bestimmen, was die Letzte Zelle mit Daten. Meine Formel ist ein verketten von zwei Zellen mit einem text, Komma in-zwischen Ihnen. Also in excel meine Formel ist =G3&", "&L3
Ich soll excel, zeichnen sich diese Formel so in der Zelle M4 wäre es =G4&", "&L4
Zelle M5 wäre =G5&", "&L5 und so weiter. Mein code sieht wie folgt aus:
Range ( "$M$3"). Formula = Range ( "G3") & ( ", ") & Range ( "L3")
Dim Lastrow As Long
Application. ScreenUpdating = False
Lastrow = Range ( "L" & Rows. Count). End ( xlUp). Row
Range ( "M4"). FormulaR1C1 = Range ( "G4") & ( ", ") & Range ( "L4")
Range ( "M4"). AutoFill Destination:= Range ( "M4:M" & Lastrow)
ActiveSheet. AutoFilterMode = False
Application. Vba letzte zeile 1. ScreenUpdating = True
Meine Ausgabe ist einfach nur ziehen Sie das text-Werte aus Zelle M3 alle der Weg nach unten an das Ende des Datensatzes.
Vba Letzte Zeile In Spalte
Und mit "Notbremse":
Der obige Code reicht im Normalfall vollkommen aus.
Dabei wird gleich die ganze Textdatei eingelesen, sodass man den Inhalt einer Stringvariablen (DatZeilen$) zuweisen kann. Mit Hilfe der "Split"-Funktion kann man über die Zeilenendezeichen (meist CR+LF) die Textzeilen einer dynamisch dimensionierten String-Array-Variablen (Zeilen$) zuweisen und über die UBOUND-Funktion die obere Dimension (=Zeilenanzahl) dieser Variablen ermittlen. Sub txt2()
Dim lngZeile&, lngRow&, strFile$, strTxt$, i%, j%, wsAP As Worksheet
Dim DatZeilen$, Zeilen$(), ZeilenAnzahl&
'Dim DatIn As Scripting. Letzte zeile finden trotz eingestellten autofilter? VBA. TextStream, fs As leSystemObject
Dim DatIn As Object
'Set fs = New FileSystemObject
'Set DatIn = TextFile(strFile, ForReading, False)
DatZeilen$ = adAll
'falls das Zeilenende der Textdatei aus CR+LF-Zeichen besteht:
Zeilen$ = Split(DatZeilen$, vbCrLf)
ZeilenAnzahl& = UBound(Zeilen$)
For lngRow = 0 To ZeilenAnzahl&
(lngRow+1, 1) = Zeilen$(lngRow)
Next lngRow
reenUpdating = True
Zuletzt bearbeitet: 23. Juni 2013
Hi Anton,
das Auslesen des Arrays sollte auch ohne Schleife gehen:
("A1")(UBound(Zeilen$) + 1, 1) = anspose(Zeilen$)
Bis später,
Karin
Hallo Karin,
danke für den Hinweis.