----Excel編程碰到的第一個(gè)問題是表頭。有時(shí)表頭的形式比較復(fù)雜,需要橫向或縱向合并單元格。請放心,只要沒有斜杠,Excel都能應(yīng)付得了。
----例如合并A2~A5這4個(gè)單元格,你錄制的宏代碼會(huì)是這樣:
Range("A2:A5").Select
WithSelection
.HorizontalAlignment=xlCenter
.VerticalAlignment=xlBottom
.WrapText=False
.Orientation=0
.AddIndent=False
.ShrinkToFit=False
.MergeCells=False
EndWith
Selection.Merge
----而自己編程只要一句Range.(“A2:A5”).mergecells=True就可以解決問題。
----表頭形式定了,再就是表頭的內(nèi)容。如果單元格中的文本長度超過了列寬,往往只能顯示部分內(nèi)容,行尾那一格的內(nèi)容則會(huì)“越境”進(jìn)入右邊那個(gè)空白單元格,很不美觀。這個(gè)問題可以通過在程序中設(shè)置列寬加以解決。
----Columns(14).columnwidth=12‘設(shè)置第14列列寬為12(缺省列寬為8.38)
----如果你不愿意勞神去逐列估計(jì)實(shí)際所需的列寬,干脆來一行
----Columns(“a:i”).autofit‘a(chǎn)到i列自動(dòng)調(diào)整列寬
----讓Excel隨機(jī)應(yīng)變吧。
----但也許你不喜歡這種方法,認(rèn)為表頭撐大了列寬,弄得瀏覽一張小表格還得向右滾動(dòng),太不方便了。要是能保持默認(rèn)列寬,讓文本自動(dòng)換行就好了。沒問題,Excel包你滿意。
----Rows(3).WrapText=True‘讓第三行各單元格中的文本自動(dòng)換行
----不過你最好再加一句Rows(3).VerticalAlignment=xlTop讓表頭自動(dòng)向上對齊,這樣比較符合習(xí)慣。
----你還可以給表頭打上底色,讓你的讀者不至于看了打哈欠。
----Rows(2).Interior.ColorIndex=5'設(shè)置第2行底色為藍(lán)色
----再給表格的標(biāo)題上色,這樣更醒目一點(diǎn)。
----Rows(1).Font.ColorIndex=4
----表頭完成后該填數(shù)據(jù)了,一個(gè)一個(gè)地填實(shí)在是太慢了,如果你的數(shù)據(jù)是存放在一個(gè)二維數(shù)組中,那問題就簡單多了。
DimData(3,4)
…………‘?dāng)?shù)據(jù)處理
Range(“a2:d4”).Value=Data
----這樣可以一次填入一個(gè)表的所有數(shù)據(jù),夠快了吧!不過提醒一句,Range對象大小最好與數(shù)組匹配,小了無法顯示所有數(shù)據(jù),大了則會(huì)在空白單元格只填入“N/A”表示沒有取得數(shù)據(jù)。
----如果需要在結(jié)果中顯示多個(gè)同樣規(guī)格的數(shù)據(jù)表,想在Range對象中加入循環(huán)變量,這也好辦。
Dimcell11,cell2
DimData(3,4)
…………
ForI=1to40
…………‘?dāng)?shù)據(jù)處理
Setcell1=Worksheets("Sheet1").Cells(5*I-4,1)
Setcell2=Worksheets("Sheet1").Cells(5*I-2,4)
Worksheets("Sheet1").Range(cell1,cell2).value=Data
NextI
----表格填完了,現(xiàn)在該打表格線了,以下幾條語句可以滿足你的要求:
WithWorksheets("Sheet1").Range(cell1,cell2).borders
.LineStyle=xlContinuous
.weight=xlThin
EndWith
----好了,關(guān)于Excel的VB編程今天就講到這兒吧。
->新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注