2014-09-29 219 views
2

我有一个生成如下图所示的Excel电子表格一个MS Access VBA代码,我需要让我的分页符输出这样的: Wrong output如何操作MS Excel的页面从MS Access减免2003 VBA

这个:

supposed output

编程在MS Access VBA。

我已经尝试了一堆代码(请参阅下面的代码片段),但不知何故,他们中的任何一个都没有做到这一点,甚至没有丝毫改变。

代码段#1)

ActiveWindow.View = xlPageBreakPreview 
ActiveSheet.ResetAllPageBreaks 

i = 1 
If ActiveSheet.HPageBreaks.Count > 0 Then 
    Do 
     Set ActiveSheet.HPageBreaks(i).Location = Range("A" & (i * 70) + 1) 
     If i = ActiveSheet.HPageBreaks.Count Then Exit Do 
      i = i + 1 
     Loop 
End If 
Do Until Cells((i * 70) + 3, 1).Value = "" 
    ActiveSheet.HPageBreaks.Add Before:=Range("a" & (i * 73) + 1) 
     i = i + 1 
    Loop 
ActiveWindow.View = xlNormalView 

代码片段#2)

Dim Rng As Excel.Range 

Set Rng = xls.Rows("1:75") 
Rng(75).PageBreak = -4135 

代码片段#3)

xls.HPageBreaks.Add Before:=xls.Cells(73, 1) 

在此的任何援助高度赞赏。谢谢一堆! :)

回答

1

我不能很好地理解你的片段,但基于截图,你想打印在一个页面上包含一切。像这样设置打印区域1 x页第1页Excel中 -

Sub breaks() 
Dim rLastCol As Long 
Dim rLastRow As Long 
With ActiveSheet 
rLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
rLastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column 

    With .PageSetup 
.PrintArea = Range("A1", Cells(rLastRow, rLastCol)).Address 
.FitToPagesWide = 1 
.FitToPagesTall = False 
    End With 

End With 
End Sub 

当然,这里采用在A列和第1行中最后使用的电池,所以最右下角非空白。

+1

我最初需要此代码在MS Access中运行,但从长远来看,我认为最好是在MS Excel文件本身中运行。因此,通过在代码中进行一些调整(在.PageSetup下,我添加了.Zoom = False,并且更改了.FitToPagesTall = 1),我设法让它工作。非常感谢你的帮助。 :) – iceheaven31 2014-09-30 10:42:33