![]() |
Zeile in eine Excel Tabelle einfügen
Hallo !
Ich will in eine Excel Tabelle an einer bestimmten Stelle eine Zeile einfügen. Habe dazu schon die gleich lautende Anfrage in diesem Forum gefunden. Leider komm ich mit dem Antwort-Hinweis nicht zu recht. Ich habe ein WorkSheet WS und will in der 25. Zeile eine Zeile einfügen. "WS.Row(25).insert (...) " läßt sich nicht compilieren. kann mir jemand mit einem kleinen Code-Schnipsel weiterhelfen ? Danke ! Gruß Andreas |
Re: Zeile in eine Excel Tabelle einfügen
Lass dir die Aktion als Makro aufzeichnen. Der Zugriff über COM erfolgt synchron
|
Re: Zeile in eine Excel Tabelle einfügen
Hallo Andreas Leix,
an welcher Stelle kommst Du denn nicht weiter? ![]() Bis bald Chemiker |
Re: Zeile in eine Excel Tabelle einfügen
Hey, ihr seid aber schnell !
Wenn ich mir im excel ein Markro aufzeichnen lasse, kommt folgendes raus Sub Makro1() ' ' Makro1 Makro ' Rows("25:25").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove End Sub Das Statement Rows("12:12").Select kann ich so nicht in Delphi übernehmen. Wenn ich mir ein Worksheet in einem Dokument hole
Delphi-Quellcode:
dann klappt das. Das Worksheet habe ich also.
WS:= Excel.Sheets[intSheet] as _WorkSheet;
Aber eine Programmzeile
Delphi-Quellcode:
läßt sich nicht compilieren. ( Fehler : "Operator oder Semikolon fehlt" )
WS.Rows('25:25').select;
Auch
Delphi-Quellcode:
wird nicht compiliert. ( Fehler: "Klasse besitzt keine Standard Eigenschaft" )
WS.Rows[25,25].select;
Wie kann ich syntaktisch korrekt eine bestimmte Zeile in einem Worksheet selektieren. |
Re: Zeile in eine Excel Tabelle einfügen
Was für einen Typ hat WS?
|
Re: Zeile in eine Excel Tabelle einfügen
Deklaration von WS
Delphi-Quellcode:
var WS: _WorkSheet;
|
Re: Zeile in eine Excel Tabelle einfügen
Delphi-Quellcode:
S.Rows.Item(25,25).Select;
|
Re: Zeile in eine Excel Tabelle einfügen
Hallo Andreas Leix,
funktioniert mkinzler´s Lösung? Sonst könntest Du noch diese Zeile probieren,
Delphi-Quellcode:
Wobei ich nicht sicher bin, ob die Zahl hinter Insert richtig ist, weil ich auf dem PC zurzeit kein Excel habe.
WS.Rows.Range['a4','a4'].Insert(2); // An der 4 Zeile eine neue Zeile einfügen.
Bis bald Chemiker |
Re: Zeile in eine Excel Tabelle einfügen
Hallo !
Erstmal Danke für eure Hilfe! Die von mkinzler vorgeschlagene Lösung hat nach kleiner Modifikation soweit mal funktioniert. Eine Zeile läßt sich markieren mit :
Delphi-Quellcode:
Der Witz war der zweite Parameter emptyParam. (Von den eckigen Klammern mal abgesehen ;-) )
WS.Rows.Item[intZeile,emtpyParam].select;
Man kann sehen,das das funktioniert, wenn man das Dokument danach im Ecxel anschaut, ist genau die richtige Zeile markiert. Danach ruf ich
Delphi-Quellcode:
auf.
WS.Rows.Insert ( xlDown, xlFormatFromLeftOrAbove );
Da bekomm ich zu Laufzeit aber eine Fehlermeldung: "Ausgefüllte Zellen können nicht über das Arbeitsblatt hinaus verschoben werden, ...." Ech komisch ! Der Witz vom Einfügen ist ja gerade, dass alles was danach kommt eine Zeile weiter rutscht und das Blatt größer wird. Es scheint also so, dass rein syntaktisch/ole-mäßig die insert Funktion schon richtig aufgerufen wird, aber ... weiß der Geier was ! Liegt´s etwa an den Aufrufparametern von insert, die ich angegeben habe ? Ich probier´s jetzt mal mit dem Vorschlag vom Chemiker. Gruß Andreas |
Re: Zeile in eine Excel Tabelle einfügen
Hallo Chemiker !
Dein Vorschlag hat funktioniert !!! Klasse Danke !! So hats geklappt:
Delphi-Quellcode:
So werden tatsächlich ohne Murren Zeilen eingefügt!!
WS.Rows.Range['A'+inttoStr(intZeile),'A'+intToStr(intZeile)].Insert( xlDown, xlFormatFromLeftOrAbove );
Super ! Danke ! So, jetzt mach ich mich dran und versuch mal einen Bereich auch wieder rauszulöschen... Gruß Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz