Excel 的VB程式設計 (轉)

worldblog發表於2007-12-05
Excel 的VB程式設計 (轉)[@more@] 碰到的第一個問題是表頭。有時表頭的形式比較複雜,需要橫向或縱向合併單元格。請放心,只要沒有斜槓,Excel都能應付得了。

---- 例如合併A2~A5這4個單元格,你錄製的宏程式碼會是這樣:

Range("A2:A5").

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False

.Orientation = 0

.AddIndent = False

.ShrinkToFit = False

.MergeCells = False

End With

Selection.Merge
---- 而自己程式設計只要一句 Range.(“A2:A5”).mergecells=True 就可以解決問題。

---- 表頭形式定了,再就是表頭的內容。如果單元格中的文字長度超過了列寬,往往只能顯示部分內容,行尾那一格的內容則會“越境”進入右邊那個空白單元格,很不美觀。這個問題可以透過在中設定列寬加以解決。

---- Columns(14).columnwidth=12 ‘設定第14列列寬為12(預設列寬為8.38)

---- 如果你不願意勞神去逐列估計實際所需的列寬,乾脆來一行

---- Columns(“a:i”).autofit ‘a到i列自動調整列寬

---- 讓Excel隨機應變吧。

---- 但也許你不喜歡這種方法,認為表頭撐大了列寬,弄得瀏覽一張小表格還得向右滾動,太不方便了。要是能保持預設列寬,讓文字自動換行就好了。沒問題,Excel包你滿意。

---- Rows(3).WrapText=True ‘讓第三行各單元格中的文字自動換行

---- 不過你最好再加一句 Rows(3) .VerticalAlignment = xlTop 讓表頭自動向上對齊,這樣比較符合習慣。

---- 你還可以給表頭打上底色,讓你的讀者不至於看了打哈欠。

---- Rows(2). Interior .ColorIndex = 5 '設定第2行底色為藍色

---- 再給表格的標題上色,這樣更醒目一點。

---- Rows(1).Font.ColorIndex=4

---- 表頭完成後該填資料了,一個一個地填實在是太慢了,如果你的資料是存放在一個二維陣列中,那問題就簡單多了。

Dim Data(3,4)

………… ‘資料處理

Range(“a2:d4”).Value=Data

---- 這樣可以一次填入一個表的所有資料,夠快了吧!不過提醒一句,Range大小最好與陣列匹配,小了無法顯示所有資料,大了則會在空白單元格只填入“N/A”表示沒有取得資料。

---- 如果需要在結果中顯示多個同樣規格的資料表,想在Range物件中加入迴圈變數,這也好辦。

Dim cell11,cell2

Dim Data(3,4)

…………

For I =1 to 40

………… ‘資料處理

Set cell1=Worksheets("Sheet1").Cells(5*I-4,1)

Set cell2=Worksheets("Sheet1").Cells(5*I-2,4)

Worksheets("Sheet1").Range(cell1,cell2).value=Data

Next I

---- 表格填完了,現在該打表格線了,以下幾條語句可以滿足你的要求:

With Worksheets("Sheet1").Range(cell1,cell2).borders

.LineStyle=xlContinuous

.weight=xlThin

End With


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988717/,如需轉載,請註明出處,否則將追究法律責任。

相關文章