Registriert seit: 13.12.2017
Version(en): 2010
Hallo zusammen,
ich hab mal wieder eine Frage.
Ich berechne in einer xlsm Datei (xl 2010) mit
Code:
lz_test = wb1.Worksheets("test").Cells(Rows.Count, 1).End(xlUp).Row
If lz_test = 1 Then
lz_test = 2
Else
lz_test = lz_test + 1
End If
die letzte beschriebenZeile +1 zum einfügen von weitren Daten. Klappt auch super.
Nur wenn ich eine 2. Datei (im XL 97 Format - die Datei muss offen sein da aus dieser die Daten für den Import kommen) offen habe steigt der Code bei Zeilen über 65535 aus, genauer er gibt als Ergebnis 1 aus.
Wie kann ich das lösen?
LG Matty
Registriert seit: 10.07.2018
Version(en): 2013, 2016
Hallo,
ich vermute mal, das liegt daran, dass es in Excel 97 noch 65535 Zeilen gab, während es in Excel 2010 einige Zeilen mehr gab. Mit Rows.Count verweist du aber auf die gerade active Datei und nicht auf die Datei wb1 - du musst also den Verweis komplett setzen, z.B. mithilfe eines With-Rahmens.
Registriert seit: 13.12.2017
Version(en): 2010
Hallo,
hmmm ich dachte das ich das mit wb1.xxxxxxxx anspreche? wb1 ist dabei natürlich die "neue" xl2010 Datei.
Wie muss denn so ein with-Rahmen aussehen?
LG Matty
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
25.07.2018, 16:05
(Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2018, 16:05 von schauan.)
Hallöchen,
z.B. so
… wb1.Worksheets("test").Cells(wb1.Worksheets("test").Rows.Count, 1).End(xlUp).Row
oder so
With wb1.Worksheets("test")
… .Cells(.Rows.Count, 1).End(xlUp).Row
End With
Beachte die Punkte vor den zugehörigen Bereichsangaben.
Du musst aber beachten, dass Du dir die Umklammerungen nicht zerwürfelst, also z.B.
With
If
End With
End If
wäre falsch, korrekt wäre
With
If
End If
End With
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 13.12.2017
Version(en): 2010
Danke euch beiden, klappt Super
Registriert seit: 21.06.2016
Version(en): 2021
Hallo Matty,
wofür die If-Verzweigung? Ist 1+1 nicht 2?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 29.09.2015
Version(en): 2030,5
die letzte Zeile:
Code:
msgbox wb1.sheets("test").Cells(Rows.Count, 1).End(xlUp).address
und
Code:
msgbox wb2.sheets("test").Cells(Rows.Count, 1).End(xlUp).address
Was Mathias behauptet hat stimmt nicht: rows.count ist fix für jede Excelversion und nicht relatiert zu einem Arbeitsblatt.
Ergo .rows.count ist unsinn.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Du irrst, snb!
Modul Modul2Option Explicit
Sub RPP()
Dim WB1 As Workbook, WB2 As Workbook
Set WB1 = Workbooks("Schachbrett.xls")
Set WB2 = Workbooks("Zeichentabelle.xlsm")
WB2.Activate
With WB1.Worksheets("Tabelle1")
Debug.Print Rows.Count
Debug.Print .Rows.Count
End With
End Sub
ergibt im Direktfenster
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ich schließe mich Ralf an. Je nach gerade aktivem Datenblatt xls oder xlsx wird mir in 2016 die Zeilenzahl der Datei angezeigt und nicht nur die in 2016 mögliche maximale Anzahl.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)