Gibts ne bessere Variante?
16.06.2017 08:48:27
Max2
ich weiß das ist ein VBA Forum, allerdings ist
VB.NET + Office Library jetzt nicht ernsthaft anders vom Syntax.
Wenn eine VB.NET Frage hier unangebracht ist, entschuldige ich mich.
Hier Problem:
Ich hole mir aus einer Excel Datei die Letzte "beschriebene" Zelle.
Diese befindet sich irgendwo bei Zeile 3000+.
Die tatsächliche letzte Zelle, ist aber Zeile 6000.
Es befinden sich haufenweise SVerweis Geschichten in den Zellen und durch
bedingte Formatierung, werden diese Zellen schwarz oder weiß dargestellt.
Alle Zellen die schwarz sind, sind nicht ausgefüllt und haben somit einen #NV Error.
Da ich bei der Suche nach der letzten Zeile, nicht nach Zell-Farbe o.ä. suchen kann, suche ich einfach "#", was mir nicht wirklich gefällt, aber es funzt.
Habt ihr einen Denkanstoß für mich?
Hier die Funktion(oSheet ist eine private Worksheet-Variable):
Private Function get_LastRow() As Integer
Dim lastCell As Integer
With oSheet
lastCell = .Range("A" & .Rows.Count).End(XlDirection.xlUp).Row
Dim rng As Range = .Range("A1:A" & lastCell)
Dim found As Range = Nothing
found = rng.Find("#", LookIn:=XlFindLookIn.xlValues, LookAt:=XlLookAt.xlWhole,
SearchOrder:=XlSearchOrder.xlByRows,
SearchDirection:=XlSearchDirection.xlNext)
If Not IsNothing(found) Then lastCell = found.Row - 1
End With
If lastCell > 0 And Not lastCell.Equals(Nothing) Then Return lastCell
End Function