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
運行代碼并選擇整個工作表,結果如下所示。