2014-09-29 113 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