Maken Squares

Eén van de (vele) frustrerende dingen Excel is dat het verschillende meeteenheden hoogte van rijen en de breedte van de kolommen specificeren.

Rijhoogte is vrij eenvoudig, het wordt gemeten in punten. Kolombreedte echter gemeten tekenbreedte. Als uw standaard stijl is ingesteld op Courier 10, dan is een kolombreedte van 12 betekent dat u precies twaalf tekens kan passen in een bepaalde kolom. Voor proportionele lettertypen, wordt het teken 0 gebruikt om de personages te tellen. (Yup, het is absurd.)

Dit leidt tot problemen als u de hoogte en breedte van een bepaalde cel aan te passen, waardoor een vierkant. Gelukkig, met een beetje macro tovenarij u kunt deze eigenaardigheid van Excel te omzeilen en de gewenste resultaten te bereiken. Denk aan de MakeSquare macro:

Sub MakeSquare ()
Dim WPChar As Double
Dim DINCH As Double
Dim Temp As String

Temp = InputBox ("Hoogte en breedte in inches?")
DINCH = Val (Temp)
Als DINCH> 0 En DINCH <2,5 Dan
Voor Elke c In ActiveWindow.RangeSelection.Columns
WPChar = C.WIDTH / c.ColumnWidth
c.ColumnWidth = ((DINCH * 72) / WPChar)
Volgende c
Voor elke R In ActiveWindow.RangeSelection.Rows
r.RowHeight = (DINCH * 72)
Volgende r
End If
End Sub

Deze macro wordt u gevraagd om de dimensie van het plein dat u wilt maken, en dan berekent precies hoe breed en hoog naar elke cel in te stellen. U kunt de macro uit te voeren met een enkele cel geselecteerd, of u kunt een grotere selectie reeks te maken.

De "wiskunde magie" wordt gedaan in het berekenen van de WPChar variabele. Deze wordt ingesteld op een waarde verkregen door het delen van de breedte van de kolom in de punten (geretourneerd door de eigenschap Width) Door de breedte van de kolom in tekens (geretourneerd door de eigenschap ColumnWidth). Deze waarde, die het aantal punten in een teken op de huidige instellingen, wordt vervolgens gebruikt om te berekenen hoeveel tekens worden gebruikt om de breedte van het volgende programma lijn.

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (1943) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003.