Q:我怎么知道工作表单元格的默认大小是多少?也就是说,在标准状态下,单元格的长和宽各是多少?如何将其变为正方形?
Q:我怎么知道工作表单元格的默认大小是多少?也就是说,在标准状态下,单元格的长和宽各是多少?如何将其变为正方形?
A:在工作表中,当我们将鼠标放置在列之间并变成双向箭头时,按下左键,将会显示单元格的大小,如下和所示,显示单元格的宽度是8.38磅(72像素),高度是13.5磅(18像素)。
可以看到,工作表单元格默认为矩形,但看起来很奇怪,行高小于列宽但行高的值却约是列宽的值的1倍。事实上,列宽的1个单位等于标准样式下1个字符的宽度;对于比例字体,使用字符的宽度;如果单元格区域中所有列有相同的宽度,那么ColumnWidth属性返回这个宽度值;如果单元格区域中的列具有不同的宽度,那么ColumnWidth属性返回该区域中第1列的宽度值。
好了,现在我们想将工作表中的单元格从默认的长方形转换为正方形,那该如何实现呢?
此时,需要以磅为基础的相应的像素值。简单地说,我们可以将列的列宽ColumnWidth(像素)除以宽度Width(磅),然后乘以行的高度Height(磅)的结果等于新的列宽ColumnWidth(像素),循环几次使其Width和Height相同。程序代码如下:
SubSquareCells()
Dim i As Long
Dim rng As Range
If MsgBox(“你想要将工作表中所有单元格转换成方形吗?”, _
vbYesNo, “所选列或者整个工作表?”) = vbYes Then
Set rng = ActiveSheet.Cells
Else
Set rng = Selection
End If
For i = 1 To 4
With rng
.Columns.ColumnWidth = _
.Columns(“A”).ColumnWidth/ _
.Columns(“A”).Width *.Rows(1).Height
End With
Next
End Sub
运行代码并选择整个工作表,结果如下所示。