我在VBA中编写了一个小工具,生成一张包含一些统计信息的工作表。 我想自动拥有一个可打印的工作表,所以我将VPageBreak设置为:
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveWindow.View = xlNormalView
起初这个工作得很好。但是这个生成的工作表的内容是基于另一个工作表中的数据,当这个数据发生变化时,DragOff-Command引发了一个错误。 发生错误的原因是VPageBreak现在自动设置在无法进行Dragoff的地方。
我需要可靠的代码,不依赖于原始数据...... 有没有办法说"我想在E&E列后的这个VPageBreak"?
提前致谢
答案 0 :(得分:1)
为了帮助您入门,请尝试此操作...
Sub SetPageBreaks()
Dim MySh As Worksheet
Set MySh = ActiveWorkbook.Worksheets("Sheet1")
MySh.VPageBreaks.Add MySh.[E1]
MySh.VPageBreaks.Add MySh.[J1]
MySh.HPageBreaks.Add MySh.[A5]
MySh.HPageBreaks.Add MySh.[A10]
' removing breaks
' note ... page breaks are only counted and accessible as objects
' when they intersect with a Print range
MySh.PageSetup.PrintArea = "A1:J10"
MySh.HPageBreaks(1).Delete
End Sub
这会在列E和J之前添加垂直页面分隔。无需将VBA切换到PageBreakView,只需设置VPageBreaks属性。
你猜对了,它也是Worksheet对象的HPageBreak属性......