2016-06-14 9 views
0

Ich habe eine Excel-Tabelle im PPT-Look, die dynamisch mit Daten aus einem anderen Blatt gefüllt wird. Zeilenhöhe für Zeilen 1 bis 7 und von 30 bis 36 sind behoben (Kopfzeile & Fußzeile des PPT). Im Bereich von Zeile 8 bis 26 sind Zeilen ausgeblendet, wenn sie leer sind (ich habe weißes "X" in einige der Zeilen eingegeben, um sie angezeigt zu halten).Setze Zeilenhöhe des Bereichs auf 721px

enter image description here

Ich brauche eine Gesamthöhe von 721px für die Zeilen 2 bis 36 erhalten auf meine PPT-Vorlage passen, wenn sie zu exportieren.

Gibt es eine Möglichkeit, Zeilenhöhe einer "weißen" Zeile (wie z. B. Zeile 29) dynamisch anzupassen, um insgesamt 721px für den definierten Bereich (Zeile 2 bis 36) zu erhalten?

+0

Ja, Sie können die Zeilenbreiten in einer Schleife ändern überprüfen und gegebenenfalls anpassen, aber Sie möchten, dass wir Code zu erhalten müssen für uns, das zu beheben, können wir nicht Mach einfach deine Arbeit für dich. –

Antwort

0

Sie wie folgt gehen könnte:

Option Explicit 

Sub main() 
    Dim extraRowHeight As Double, totalRowsHeight As Double 
    Dim myRowsRange As Range 
    Const maxRowHeight As Double = 409 '<--| maximum allowed row height 

    totalRowsHeight = 721# '<--| set the total rows height you need for the range you are to specifiy right below 
    With Worksheets("MyTableSheet") '<--| change "MyTableSheet" with your actual sheet name 
     extraRowHeight = totalRowsHeight - .Rows("2:36").Height '<--| calculate the extra height needed for the wanted rows range 
     With .Rows(29) '<--| consider the "reservoir" row 
      If .RowHeight + extraRowHeight <= maxRowHeight Then '<--| if needed extra height leads to an allowable resulting "reservoir" row height ... 
       .RowHeight = .RowHeight + extraRowHeight '<--| ... then adjust "reservoir" row height 
      Else 
       .RowHeight = maxRowHeight '<--| ... otherwise adjust "reservoir" row to maximum allowable height ... 
       MsgBox "you still need to resize some other rows height for " & totalRowsHeight - .Rows("2:36").Height & " pts more" '<--|... and inform how much there still is to go 
      End If 
     End With 
    End With 
End Sub 
+0

Vielen Dank! Ich habe es mit dem Code kombiniert, um leere Zeilen zwischen 8 und 26 zu verstecken, und es funktioniert einwandfrei! – LukasHaene

+0

Gern geschehen – user3598756