2014-09-29 2 views
2

У меня есть код MS Access VBA, который генерирует таблицу Excel, показанную ниже, и мне нужно, чтобы мой выход разрыва страницы из этого: 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 странице х 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 

Конечно, это использует последнюю использованную ячейку в столбце А и в строке 1, так что самый нижний правый непустой.

+1

Первоначально мне нужен этот код для работы в MS Access, но в конечном итоге я решил, что лучше всего запускать в самом файле MS Excel. Поэтому с небольшим изменением в этом коде (под .PageSetup я добавил .Zoom = False и изменил .FitToPagesTall = 1), мне удалось заставить его работать. Огромное спасибо за помощь. :) – iceheaven31

Смежные вопросы