excel97-2003制作簡單表格的教程
2005
2022-06-01
應用場景
跨頁合并單元格后重新合并并適應分頁打印
知識要點
1:ActiveWindow.View = xlPageBreakPreview 分頁預覽模式,判斷分頁符位置
2:HPageBreaks 對象 ?打印區域內水平分頁符的集合
3:HPageBreak.Location 屬性 ?返回或設置定義分頁符位置的單元格(Range 對象)。
4:判斷頁面的最后一個單元格與下一頁第一個單元格是否處于同一合并區域
5:Range.UnMerge 方法 將合并區域分解為獨立的單元格
6:合并單元格是否跨頁只能在分頁預覽模式下才體現出來
Sub 重組跨頁合并() '將跨頁的合并單元格重新合并從而適應分頁打印
Dim p, MerageAddress As String, PageCell As Range, MergeValue
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview '進入分頁預覽,才可以判斷分頁符位置
For Each p In ActiveSheet.HPageBreaks ?'逐頁循環 hpagebreaks對象,打印區域內水平分頁符的集合
'hpagebreak.location屬性,返回或設置定義分頁符位置的單元格(range對象)
Set PageCell = Cells(p.Location.Row - 1, ActiveCell.Column) '將每個分頁最后一個單元格賦予變量
'如果該頁最后一個單元格具有合并屬性,而且與下一頁第一個單元格處于同一個合并區域
If PageCell.MergeCells And Not Intersect(Cells(p.Location.Row, ActiveCell.Column), PageCell.MergeArea) Is Nothing Then
MerageAddress = PageCell.MergeArea.Address '取得合并區域的地址
MergeValue = PageCell.MergeArea(1).Value '取得合并區域的值
PageCell.MergeArea.UnMerge '取消合并
Range(Range(MerageAddress)(1), PageCell).Merge '將合并區域中處于本頁的單元格合并
Range(Range(MerageAddress)(1), PageCell).Borders.LineStyle = xlContinuous '添加邊框
With Range(PageCell.Offset(1, 0), Cells(Split(MerageAddress, "$")(4), ActiveCell.Column))
.Merge '再將合并區域中處于下一頁的單元格合并
.Value = MergeValue '賦值
.HorizontalAlignment = xlCenter '左右居中
.VerticalAlignment = xlCenter '上下居中
.Borders.LineStyle = xlContinuous
End With
End If
Next
Application.ScreenUpdating = True
ActiveWindow.View = xlNormalView '還原為常規視圖
End Sub
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。