In Microsoft Excel
Ich möchte die Höhe der ersten drei Zeilen und der ersten vier Spalten (12 Zellen in der oberen linken Ecke) so festlegen, dass diese Zellen Quadrate sind. Wie kann das gemacht werden?
Überraschenderweise sagt Excel:
Row height: 15
Column width: 8.43
Diese sind also nicht im gleichen Maßstab.
Wenn ich beide 8.43 mache, sehe ich Folgendes:
Nun, was soll ich tun?
Noch eine Möglichkeit ... ändere deine Ansicht auf Seitenlayout. Dadurch wird die Rasterskala in Zoll geändert, und Sie können sowohl die Höhe als auch die Breite auf denselben Wert einstellen (z. B. 25 Zoll). Das IMO-Seitenlayout ist die beste Standardansicht für die Bearbeitung des Erscheinungsbilds der Tabelle.
Hier ist ein Beispiel mit den tatsächlichen Abmessungen für beide Ansichten:
Wählen Sie alle (oder die Zeilen/Spalten, die Sie benötigen) aus und ziehen Sie, um die Größe auf die gewünschte Größe zu ändern.
Erledigt!
Die Spaltenbreite von Excel wird anhand der Anzahl der Nullen (0) gemessen, die im Normalstil in die Zelle passen. Informationen zum Umrechnen in Punkte (wie die Zeilenhöhe gemessen wird) finden Sie unter
http://www.dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/
Wenn Sie nicht genau sein müssen, mustern Sie es einfach. Wenn Sie näher dran sein müssen als blicken, platzieren Sie ein Quadrat aus der Symbolleiste Zeichnen auf Ihrem Blatt und passen Sie die Größe an. Wenn Sie es 10 x 10 wollen, verwenden Sie Code wie folgt:
sheet1.Shapes(1).Height = 10
sheet1.Shapes(1).Width = 10
sheet1.Shapes(1).Top = sheet1.Shapes(1).TopLeftCell.Top
sheet1.Shapes(1).Left = sheet1.Shapes(1).TopLeftCell.Left
Anschließend können Sie die Größe Ihrer Zeile und Spalte manuell an das Quadrat anpassen und Höhe und Spaltenbreite ablesen.
VBA scheint für ein so einfaches Ergebnis ein wenig übertrieben zu sein. Wenn Sie beim Ziehen klicken und halten, um die Zeilen-/Spaltengröße zu ändern, wird die Größe in Pixel in Klammern angezeigt. Diese Einheiten sind nicht skaliert. Wenn Sie also die Zeilen- und Spaltengröße auf gleiche Pixel einstellen, sind sie quadratisch. Dies ist natürlich ein manueller Vorgang. Sie können jedoch die entsprechenden Größen finden und dann einen Bereich von Zeilen/Spalten auswählen und alle Größen gleichzeitig festlegen.
Hier ist eine VBA-Lösung.
Private Sub MakeSquareCells()
'// Create graph paper in Excel see http://www.erlandsendata.no/english/index.php?d=envbawssetrowcol if you want cm or inches
Set Cursheet = ActiveSheet
'don't drive the person crazy watching you work
UpdateScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
With wksToHaveSquareCells
.Columns.ColumnWidth = 5 '// minimum 2, max 400 ; above 7 --> zoom doesn't work Nice
.Rows.EntireRow.RowHeight = .Cells(1).Width
'// ActiveWindow.Zoom = true
End With
Application.ScreenUpdating = UpdateScreen
Cursheet.Activate '// Reactivate sheet that has been active at entrance of this subroutine
End Sub
Eigentlich hatte ich in der Vergangenheit das gleiche Problem. Was für mich am besten funktioniert, ist der folgende VBA-Code. Ich habe die lineare Beziehung nur durch Ausprobieren gefunden.
Der Code funktioniert für einzelne Zellen, aber auch für eine Auswahl. Im letzteren Fall basieren die Quadrate auf der Gesamtselektionsbreite oder -höhe.
Sub MakeCellSquareByColumn()
Selection.RowHeight = Selection.Width / Selection.Columns.Count
Selection.ColumnWidth = (((Selection.Width / Selection.Columns.Count) / 0.75 - 5) / 7)
End Sub
Sub MakeCellSquareByRow()
Selection.ColumnWidth = (((Selection.Height / Selection.Rows.Count) / 0.75 - 5) / 7)
Selection.RowHeight = Selection.Height / Selection.Rows.Count
End Sub
Sie können diese Makros in ein Modul einfügen und ihnen Schaltflächen in der Symbolleiste für den Schnellzugriff zuweisen
Beachten Sie, dass die Quadrate (durch Ändern der Spaltenbreite) verschwinden, wenn Sie die Schriftart oder -größe ändern. Dies liegt an der Art und Weise, wie Excel die Spaltenbreite berechnet. Siehe: https://support.Microsoft.com/de-de/help/214123/description-of-how-column-widths-are-d determined-in-Excel
Wenn Sie dies für das gesamte Blatt tun möchten, können Sie diesen Trick anwenden - der trotzdem hilfreich sein kann: Klicken Sie auf das Kästchen links neben der Spaltenüberschrift A, um alle Zellen auszuwählen. Klicken Sie auf einen der Spaltentitelteiler und ziehen Sie ihn auf die gewünschte Größe, wobei Sie die Anzahl der Pixel für die resultierende Zellenbreite notieren (ich verwende Excel 2007, das dies zeigt). Machen Sie dasselbe für einen der Zeilenbeschriftungsteiler und passen Sie ihn an die Spaltenbreite in Pixeln an. Das sollte alle Zellen in den Blattfeldern vornehmen. Was Sie natürlich nicht gefragt haben, aber ich hatte gehofft, dieser Trick würde mit einer Teilmenge von Zellen funktionieren. Leider nicht.
Sie müssen sich bewusst sein, dass das, was mathematisch und visuell ein Quadrat ist, unterschiedlich ist. Nicht alle Monitore sind auf die gleiche Weise hergestellt. In der Regel sind Pixel breiter als hoch.
Schauen Sie sich das folgende Bild an:
Jedes rote, grüne und blaue Subpixel bildet das gesamte Pixel. Wie Sie sehen können, ist die Kombination der 3 breiter als die Höhe von 1 Subpixel. In den meisten Fällen ist der Unterschied geringfügig, und die meisten Menschen bemerken ihn möglicherweise nicht. In einigen Fällen ist dies jedoch der Fall.
Ich habe festgestellt, dass pro 1,0 Punkt Spaltenbreite ein Quadrat mit einem Verhältnis von 7,25 Zeilenhöhe erstellt werden kann.
Wählen Sie zunächst die Zellen aus, deren Größe Sie ändern möchten. Gehen Sie dann auf der Registerkarte Home
zum Feld Cells
und klicken Sie auf die Option Format
. Hier können Sie den Row Height
und den Column Width
der ausgewählten Zellen wie gewünscht ändern.
Ich wollte ein perfektes quadratisches Raster für ein Nähprojekt erstellen und bekam auf diese Frage immer wieder seltsame Antworten. Deshalb habe ich beschlossen, selbst damit zu spielen, um es herauszufinden. Ich entdeckte, dass es unmöglich ist, ein perfektes Quadrat zu bekommen, aber ich kam so nah wie möglich, nur ein Stückchen davon.
Unter Verwendung eines Lineals stellte ich fest, dass ich bei einer Länge von 7 und 10 Zoll nur einen Bruchteil davon hatte. Hoffe das hilft.
Ich benutze ein Verhältnis von 5-1/3, Zeilenhöhe zu Spaltenbreite.
Nehmen Sie zum Beispiel eine Zeile mit einer Höhe von 53,33 und eine Spaltenbreite von 10 bzw. 106,66 und 20 vor, und Sie sind nah genug an der Regierungsarbeit.
Excel 2010 Das Anpassen in der Seitenlayoutansicht und das anschließende Zurückschalten in die Normalansicht funktioniert nicht. Ich konnte mit den Zeichenwerkzeugen validieren und in der Normalansicht ein perfektes Quadrat erstellen. Dies ist die einfachste Methode, um Quadrate beliebiger Größe zu erstellen.
Spaltenbreite = 2,71 Zeilenhöhe = 18.
Dies macht den Trick ziemlich ordentlich mit VBA. Stellen Sie eine einheitliche rowHeight
ein, verwenden Sie dann die Width
-Eigenschaft (gibt die Spaltengröße in Punkten zurück) und dividieren Sie RowHeight
durch diese, um ein Verhältnis von Höhe und Breite ohne Einheit zu erhalten. Machen Sie die neue ColumnWidth
, die mal die ursprüngliche ColumnWidth
ist, um alles quadratisch zu machen.
Sub makeSquares()
Cells.RowHeight = 20
With Cells(1, 1)
W = .ColumnWidth
HWratio = .RowHeight / .Width
Cells.ColumnWidth = W * HWratio
End With
End Sub
Wenn Sie möchten, dass Zeilen und Spalten quadratisch aussehen, markieren Sie alle Zellen, die Sie quadratisch machen möchten, und ändern Sie die Zeilenhöhe auf 28,8 UND die Spaltenbreite auf 4,56.
Klicken und ziehen Sie den Rand zwischen den Zeilen. Um die Größe mehrerer Spalten/Zeilen gleichzeitig zu ändern, wählen Sie alle aus, klicken Sie mit der rechten Maustaste und klicken Sie auf "Zeilenhöhe ...", und stellen Sie die Höhe so ein, dass die Zeilen breit sind.
Wählen Sie die Spalten aus (klicken Sie auf die A-Spalte, halten Sie die Umschalttaste gedrückt und klicken Sie auf das andere Ende).
Klicken Sie mit der rechten Maustaste auf eine der Spalten, klicken Sie auf Spaltenbreite und geben Sie einen neuen Wert ein.
Sie können dasselbe mit einer Zeile tun und dann auf Zeilenhöhe klicken, um die Höhe einer Zeile abzurufen.