![]() |
Excel: Anzahl der Zeilen bis zum Seitenumbruch ermitteln
Hallo zusammen,
ich füge mittels der Komponente TExcelApplication (bei D5 unter Server) Daten in ein Exceldokument ein. Ich habe verschieden große Blöcke und möchte nun feststellen, ob dafür noch genügend Zeilen frei sind (von meiner aktuellen Position [Zelle] bis zum nächsten Seitenumbruch). Diese Blöcke sollen immer zusammenhängend sein und nicht auf einer Seite beginnen und auf der nächsten fortgesetzt werden. Mein Frage nun: Wie ermittele ich die Anzahl der Zeilen von meiner Zellposition bis zum Seitenumbruch? Vielen Dank und freundliche Grüße Lorenz |
Re: Excel: Anzahl der Zeilen bis zum Seitenumbruch ermitteln
Hallo Lorenz,
laut Excel VBA Reference solltest du ein von Excel automatisch eingefügtes PageBreak als row property abfragen können. Ich würde über die Zeilen iterieren bis ich das nächste PageBreak gefunden habe. Funktioniert auch bei Spalten und anderen Objekten. Grüße vom marabu |
Re: Excel: Anzahl der Zeilen bis zum Seitenumbruch ermitteln
Vielen Dank marabu,
ich poste hier mal meine Funktion, die die Anzahl der Zeilen bis zum Seitenumbruch zurückgibt:
Delphi-Quellcode:
Mit J wird die aktuelle Position überbegen.
function GetFreeLines(WS : _WorkSheet; J : Integer) : Integer;
var NextPB : Excel97.Range; CurrPos : Integer; CurrCount : Integer; k : Integer; begin CurrPos := J; CurrCount := WS.HPageBreaks.Count; // Zeilen befüllen, damit Count hochgezählt wird while (WS.HPageBreaks.Count = CurrCount) do begin Inc(J); WS.Cells.Item[J,1].Select; WS.Cells.Item[J,1].Value := '0'; end; (* of while *) NextPB := WS.HPageBreaks.Item[WS.HPageBreaks.Count].Location; // Zeilen wieder leeren for k := j downto CurrPos do begin WS.Cells.Item[k,1].Select; WS.Cells.Item[k,1].Value := ''; end; (* of for *) result := NextPB.Row - WS.Cells.Item[CurrPos,1].Row; end; (* of GetFreeLines *) Man muss wohl was in die Zellen reinschreiben, damit der automatische Zeilenumbruch aktiv wird, mit leeren Zellen hat es bei mir nicht funktioniert. MFG Lorenz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 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