关于Excel的(很多)令人沮丧的事情之一是,它使用不同的度量单位来指定行的高度和列的宽度。

行高非常简单-以磅为单位进行测量。但是,列宽以字符宽度为单位。如果将标准样式设置为Courier 10,则列宽为12意味着您可以在给定的列中恰好容纳12个字符。对于比例字体,字符0用于计数字符。 (是的,这很荒谬。)

如果要使特定单元格的高度和宽度匹配,从而形成正方形,则会导致问题。幸运的是,有了一些宏向导,您就可以绕过Excel的这种怪癖并获得所需的结果。考虑MakeSquare宏:

Sub MakeSquare()

Dim WPChar As Double     Dim DInch As Double     Dim Temp As String          Temp = InputBox("Height and width in inches?")

DInch = Val(Temp)

If DInch > 0 And DInch < 2.5 Then         For Each c In ActiveWindow.RangeSelection.Columns             WPChar = c.Width / c.ColumnWidth             c.ColumnWidth = ((DInch * 72) / WPChar)

Next c         For Each r In ActiveWindow.RangeSelection.Rows             r.RowHeight = (DInch * 72)

Next r     End If End Sub

此宏提示您输入要创建的正方形的尺寸,然后精确计算设置每个单元格的宽度和高度。

您可以选择一个单元格来运行宏,也可以进行更大的选择集。

“算术魔术”是在WPChar变量的计算中完成的。将此值设置为通过将以点为单位的列的宽度(由Width属性返回)除以以字符为单位的列的宽度(由ColumnWidth属性返回)得出的值。该值是当前设置下一个字符的点数,然后用于计算在下一个程序行中应使用多少个字符来设置宽度。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(1943)适用于Microsoft Excel 97、2000、2002和2003。