VB代码
Sub 完整显示合并的单元格区域()
Dim P, MergeAddress As String, PageCell As Range, MergeValue
ActiveWindow.View = xlPageBreakPreview
For Each P In ActiveSheet.HPageBreaks
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
MergeAddress = PageCell.MergeArea.Address
MergeValue = PageCell.MergeArea(1).Value
PageCell.MergeArea.UnMerge
Range(Range(MergeAddress)(1), PageCell).Merge
With Range(PageCell.Offset(1, 0), Cells(Split(MergeAddress, "$")(4), ActiveCell.Column))
.Merge
.Value = MergeValue
End With
End If
Next
ActiveWindow.View = xlNormalView
End Sub
1. 打开开发工具
文件
- 选项
打开选项卡,打开开发工具
2. 打印准备
打开网格线打印,有两种方式,选其一即可
- 直接点击红色矩形框位置
- 点击蓝色圆标记的地方打开
显示打印的虚线
仔细观察一下打印的虚线有没有显示,如果没有就按下面的步骤,注意不需要实际打印
3.导入代码
- 打开代码窗口
- 点击
文件
-导入文件
,选择保存的代码文件,点击打开
。代码文件可以先新建一个 .txt 文件,然后把代码复制进来保存,然后重命名后缀为 .bas 即可。
- 没有问题后会显示如图中的
模块1
。导入完成后最好点击模块1
文件看一下右侧的代码,中文的地方可能会乱码,可以把代码再重新粘贴一遍保存。
- 最后点击
文件
-保存
。保存时可能会出现弹框,我先点的否
,然后提示选择存储路径(类似另存为),点击保存后又弹出了同样弹框,好像必须点击是
才能保存,而且当前打开的文件也会替换为重新保存的文件,但原文件不会删,因为我没有再去复现这个过程,所以大家可以注意一下。
4. 使用
- 鼠标点击需要处理的
列
(只能一列一列地设置,不能选多列),然后点击开发工具
-宏
- 选中程序,然后执行即可
- 点击
文件
-打印
可以看一下处理效果
如果发现没有效果,注意这里有没有打开