Beispiel:
Effektif genutzter Blattinhalt: A1:N60
in die Zellen P1:P60 soll die aktuelle Höhe der jeweiligen Zeilen geschrieben werden
in die Zellen A62:N62 soll die aktuelle Breite der jeweiligen Spalten geschrieben werden
Danke für Eure Hilfe.
Sub Makro1()
Dim LetzteZeile As Long, LetzteSpalte As Integer
Dim iZeile As Long, iSpalte As Integer
With ActiveSheet
LetzteZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
LetzteSpalte = .UsedRange.Column + .UsedRange.Columns.Count - 1
For iZeile = .UsedRange.Row To LetzteZeile
Cells(iZeile, LetzteSpalte + 2) = Rows(iZeile).RowHeight
Next iZeile
For iSpalte = .UsedRange.Column To LetzteSpalte
Cells(LetzteZeile + 2, iSpalte) = Columns(iSpalte).ColumnWidth
Next iSpalte
End With
End Sub
Sub Makro1()
Dim LetzteZeile As Long, LetzteSpalte As Integer
Dim iZeile As Long, iSpalte As Integer
With ActiveSheet
LetzteZeile = .Range("B33")
LetzteSpalte = .Range(.Range("B32") & 1).Column
For iZeile = 1 To LetzteZeile - 1
Cells(iZeile, LetzteSpalte) = Rows(iZeile).RowHeight
Next iZeile
For iSpalte = 1 To LetzteSpalte - 1
Cells(LetzteZeile, iSpalte) = Columns(iSpalte).ColumnWidth
Next iSpalte
End With
End Sub
Function ZellHoehe(Target As Range)
Application.Volatile
ZelleInfo = Target.Cells.Height
End Function
Um die aktuelle Zeilenhöhe in eine Zelle zu schreiben, kannst Du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:
ALT + F11
, um den VBA-Editor zu öffnen.VBAProject (DeinWorkbookName)
und wähle Einfügen
> Modul
.Sub ZeilenhöheUndSpaltenbreite()
Dim LetzteZeile As Long, LetzteSpalte As Integer
Dim iZeile As Long, iSpalte As Integer
With ActiveSheet
LetzteZeile = .Range("B33") ' Zeile aus B33
LetzteSpalte = .Range("B32").Column ' Spalte aus B32
For iZeile = 1 To LetzteZeile
Cells(iZeile, LetzteSpalte) = Rows(iZeile).RowHeight
Next iZeile
For iSpalte = 1 To LetzteSpalte
Cells(LetzteZeile, iSpalte) = Columns(iSpalte).ColumnWidth
Next iSpalte
End With
End Sub
ALT + F8
, wähle ZeilenhöheUndSpaltenbreite
aus und klicke auf Ausführen
.Jetzt werden die Zeilenhöhen und die Spaltenbreiten in die gewünschten Zellen geschrieben. Stelle sicher, dass die Zelle B32 den Buchstaben der gewünschten Spalte und B33 die gewünschte Zeile enthält.
Fehler: "Typenübereinstimmung" oder "Index außerhalb des Bereichs"
Fehler: "Makro kann nicht ausgeführt werden"
Datei
> Optionen
> Trust Center
> Einstellungen für das Trust Center
> Makroeinstellungen
und aktiviere die entsprechenden Optionen.Falls Du die Zeilenhöhe oder Spaltenbreite ohne VBA ermitteln möchtest, kannst Du die folgende Excel-Funktion verwenden:
=ZELLE("Breite";A1)
, um die Breite der Zelle A1 zu erhalten.Function ZellHoehe(Target As Range)
Application.Volatile
ZellHoehe = Target.Cells.Height
End Function
Beachte, dass die benutzerdefinierte Funktion nicht automatisch aktualisiert wird, wenn sich die Zeilenhöhe ändert.
Zeilenhöhe in P1:P60 schreiben:
Cells(iZeile, 16)
anstelle von Cells(iZeile, LetzteSpalte)
verwendest.Summe aller Zeilenhöhen:
Dim SummeHoehen As Double
SummeHoehen = 0
For iZeile = 1 To LetzteZeile
SummeHoehen = SummeHoehen + Rows(iZeile).RowHeight
Next iZeile
Cells(LetzteZeile + 1, LetzteSpalte) = SummeHoehen
Application.Volatile
, um sicherzustellen, dass Funktionen bei jeder Neuberechnung aktualisiert werden.1. Wie kann ich das Makro regelmäßig ausführen lassen? Du kannst das Makro an ein Arbeitsblatt- oder Arbeitsmappenereignis binden, z.B. bei Änderungen in bestimmten Zellen.
2. Was ist, wenn ich die Werte in einem anderen Arbeitsblatt speichern möchte?
Du kannst einfach das Ziel der Cells
-Anweisung anpassen, indem Du den Arbeitsblattnamen angibst, z.B. Sheets("MeinAnderesBlatt").Cells(...)
.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen