excelperfect “合并后居中”按鈕是Excel界面中一個(gè)非常方便的功能,,很多人都喜歡使用合并單元格,。然而,對(duì)合并單元格進(jìn)行一些操作會(huì)帶來(lái)一些問(wèn)題,,Excel會(huì)給出下圖1所示的提示消息,。 圖1 這往往會(huì)讓人感到困惑。 其實(shí),,Excel有一個(gè)隱藏著的替代選項(xiàng),,稱(chēng)為“跨列居中”,與合并單元格效果相同,,如下圖2所示,。 圖2 雖然兩者看起來(lái)效果不同,但實(shí)質(zhì)上是不同的,,“跨列居中”不會(huì)導(dǎo)致上圖1所示的錯(cuò)誤信息提示,。 單擊“開(kāi)始”功能區(qū)“對(duì)齊方式”(或者“字體”、“數(shù)字”)組右下角的對(duì)話框啟動(dòng)器,,或者按“Ctrl+1”組合鍵,。在彈出的“設(shè)置單元格格式”對(duì)話框中選擇“對(duì)齊”選項(xiàng)卡,,在“水平對(duì)齊”下拉列表中選擇“跨列居中”,如下圖3所示,。 圖3 如果已經(jīng)有一個(gè)包含大量合并單元格的工作簿,,如果要一個(gè)單元格一個(gè)單元格地改變其格式設(shè)置,沒(méi)有必要,,因?yàn)榭梢允褂孟旅娴腣BA程序,。 Sub ConvertMergedCellsToCenterAcross() Dim c As Range Dim mergedRange As Range '檢查當(dāng)前是否為工作表 If TypeName(ActiveSheet) <>'Worksheet' Then Exit Sub '遍歷已使用的所有單元格 For Each c In ActiveSheet.UsedRange '如果合并且單行 If c.MergeCells = True Andc.MergeArea.Rows.Count = 1 Then '為合并單元格設(shè)置變量 Set mergedRange = c.MergeArea '取消合并單元格并應(yīng)用跨列居中 mergedRange.UnMerge mergedRange.HorizontalAlignment =xlCenterAcrossSelection End If Next End Sub 跨列居中不適用于跨行,因此,,上面的VBA程序?qū)iT(mén)設(shè)計(jì)為不刪除任何包含多行的合并單元格,。 注:本文整理自exceloffthegrid.com,供有興趣的朋友學(xué)習(xí)參考,。 |
|
來(lái)自: hercules028 > 《VBA》