Q:我怎么知道工作表單元格的默認(rèn)大小是多少?也就是說(shuō),在標(biāo)準(zhǔn)狀態(tài)下,單元格的長(zhǎng)和寬各是多少?如何將其變?yōu)檎叫危?/p>
A:在工作表中,當(dāng)我們將鼠標(biāo)放置在列之間并變成雙向箭頭時(shí),按下左鍵,將會(huì)顯示單元格的大小,如下和所示,顯示單元格的寬度是8.38磅(72像素),高度是13.5磅(18像素)。
可以看到,工作表單元格默認(rèn)為矩形,但看起來(lái)很奇怪,行高小于列寬但行高的值卻約是列寬的值的1倍。事實(shí)上,列寬的1個(gè)單位等于標(biāo)準(zhǔn)樣式下1個(gè)字符的寬度;對(duì)于比例字體,使用字符的寬度;如果單元格區(qū)域中所有列有相同的寬度,那么ColumnWidth屬性返回這個(gè)寬度值;如果單元格區(qū)域中的列具有不同的寬度,那么ColumnWidth屬性返回該區(qū)域中第1列的寬度值。
好了,現(xiàn)在我們想將工作表中的單元格從默認(rèn)的長(zhǎng)方形轉(zhuǎn)換為正方形,那該如何實(shí)現(xiàn)呢?
此時(shí),需要以磅為基礎(chǔ)的相應(yīng)的像素值。簡(jiǎn)單地說(shuō),我們可以將列的列寬ColumnWidth(像素)除以寬度Width(磅),然后乘以行的高度Height(磅)的結(jié)果等于新的列寬ColumnWidth(像素),循環(huán)幾次使其Width和Height相同。程序代碼如下:
SubSquareCells()
Dim i As Long
Dim rng As Range
If MsgBox(“你想要將工作表中所有單元格轉(zhuǎn)換成方形嗎?”, _
vbYesNo, “所選列或者整個(gè)工作表?”) = 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
運(yùn)行代碼并選擇整個(gè)工作表,結(jié)果如下所示。