Autor |
Beitrag |
PreMarT
      
Beiträge: 57
Work: Win XP ; Home: Win Vista 64-Bit
|
Verfasst: Fr 11.12.09 12:07
Hallo alle zusammen,
hab da mal wieder ein kleinen Problem.
Und zwar möchte ich das Ende meiner Xls Datei herausfinden also nach welcher Zeile nix mehr kommt, ich hab es mit Rows.Count probiert aber da gibt der mit 65536 aus also die Max Zeilen eines Sheets...
Wenn man in Excel mit dem Scrollbar runter fährt bleibt er ja bei der letzten Zeile stehen, wenn man nciht mit PageDown oder den Pfeiltasten weiter runter fährt...Diese Zeile brauch ich
Hat jemand ne Idee?
bin für jeden Vorschlag dankbar
mfg
PMT
|
|
Andreas Schilling
      
Beiträge: 128
Erhaltene Danke: 1
WIN XP, WIN 7
Delphi 5 Ent, Delphi 2007 Pro, XE4
|
Verfasst: Fr 11.12.09 13:05
Zeilenzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
|
|
PreMarT 
      
Beiträge: 57
Work: Win XP ; Home: Win Vista 64-Bit
|
Verfasst: Fr 11.12.09 14:12
Also falls ich falsch verstanden wurde^^ denn der Code geht irgendwie nciht und verstehen tu ich ihn noch weniger :/
hab im moment
Delphi-Quelltext 1:
| MaxZeilen := XLSheet.Rows.Count |
brauch jetzt nen Befehl wo ich die Zeilenanzahl bekomm nach der nichts mehr kommt...
mfg
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Fr 11.12.09 14:46
PreMarT hat folgendes geschrieben : | denn der Code geht irgendwie nciht |
Wie war noch gleich die Fehlermeldung?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Andreas Schilling
      
Beiträge: 128
Erhaltene Danke: 1
WIN XP, WIN 7
Delphi 5 Ent, Delphi 2007 Pro, XE4
|
Verfasst: Fr 11.12.09 14:51
Ok, das ist die Variante für Makros in Excel selber gewesen.
Delphi-Quelltext 1:
| MaxZeilen := XLSheet.Cells(Rows.Count, 1).End(xlUp).Row; |
Normalerweise kann man es fast 1:1 in Delphi verwenden. Eventuell noch etwas rumexperimentieren.
|
|
PreMarT 
      
Beiträge: 57
Work: Win XP ; Home: Win Vista 64-Bit
|
Verfasst: Fr 11.12.09 15:06
wenn ich den Code so übernehme kommt Operator oder Simikolon fehlt...
wenn ichd en code etwas umschreibe kommen sehr skurile fehler
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Fr 11.12.09 15:16
"skurrile Fehler", tolle Aussage..
Poste doch mal den Code, wie du ihn "etwas verändert" hast, und welcher "skurile Fehler" dabei kommt.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
PreMarT 
      
Beiträge: 57
Work: Win XP ; Home: Win Vista 64-Bit
|
Verfasst: Fr 11.12.09 15:25
Delphi-Quelltext 1: 2: 3: 4: 5:
| iMaxZeilen := XLSheet.Cells(Rows.Count, 1).End(xlUp).Row; iMaxZeilen := XLSheet.Cells.Rows.Count.End(xlUp).Row; iMaxZeilen := XLSheet.Cells.Item[XLSheet.Rows.Count, 1].End(xlUp).Row; |
Das Problem ist ist weis nicht wie ich den Code ändern soll...und was jetzt der post bringen soll weis ich net...entweder man weis wie es geht und kann mir helfen oder man weis es nicht dann brauch ich auch nix zu posten...
Versteh ja nciht mal den Code der gepostet wurde... :/ wie soll cih den dann umschreiben?
|
|
JoelH
      
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Fr 11.12.09 15:54
_________________ mfg. Joel
|
|
PreMarT 
      
Beiträge: 57
Work: Win XP ; Home: Win Vista 64-Bit
|
Verfasst: Fr 11.12.09 16:00
@Andreas Schilling
Danke für den Code
@JoelH
Danke für die Übersetzung sowie Nachhilfe
Es funktioniert... aber ich weis leider immernoch nicht ganz wie der Code zusatande kommt...
wenn es vielleicht noch wer kommentieren mag
ansonsten geb ich mich acuh mit dem Ergebnis zu frieden..
Danke nochmal
mfg
PMT
|
|
JoelH
      
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Fr 11.12.09 16:21
Also wenn du bei Excel etwas automatisieren willst, dann bietet sich folgende Vorgehensweise an. Du startet Excel und wählst Extras/Makros/Aufzeichnen.
Dann machst du dann was dein Makro für dich machen soll. Danach beendest du die Aufzeichnung und schaust was im Erzeugten Makro steht. Das kann man dann relativ 1:1, mit ein paar Einschränkungen, einfach nach Delphi transferieren und fertig ist die Fernsteuerung.
Dein Code hier geht IMHO (bin nicht ganz sicher  ) hin und geht runter bis zur letzten Tabellenzeile. Das macht dieser Teil
Cells(Rows.Count, 1)
dann simuliert er ein STRG-Pfeil nach Oben. Das sollte der Teil End(xlUp) sein. und das Row gibt wohl dann die entsprechende Ziele zurück auf der du dann stehst.
Aber das kann die Andreas Schilling wahrscheinlich besser erläutern, also kein Gewähr auf das was ich geschrieben habe, ich hab das nur anhand des Codes geschlussfolgert.
_________________ mfg. Joel
|
|
PreMarT 
      
Beiträge: 57
Work: Win XP ; Home: Win Vista 64-Bit
|
Verfasst: Mo 11.01.10 14:44
Jetzt nach paar Wochen musste ich feststellen das die Lösung doch nciht ganz Wasserdicht war, hab mal ein bisschen rumprobiert und einen 100% sauberen Befehl gefunden.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| XLBk := XLApp.WorkBooks.Item[1]; XLSheet := XLBk.WorkSheets.Get_Item(1) as _Worksheet;
F_iMaxZeilen:= XLSheet.Cells.Item[1,1].SpecialCells[xlLastCell].Row ; F_iMaxSpalten:= XLSheet.Cells.Item[1,1].SpecialCells[xlLastCell].Column ; |
MFG
BG
|
|