phanminhphuong
Thành viên hoạt động



- Tham gia
- 26/7/13
- Bài viết
- 127
- Được thích
- 69
Mình có thử đoạn code để căn chỉnh bảng ()như file đính kèm vừa vặn 1 trang để in nhưng chưa biết sai chỗ nào nên chưa đạt yêu cầu
[GPECODE=vb]Sub Fit_Table_To_1_Page()
'Application.ScreenUpdating = False
Dim TopMargin As Long, BottomMargin As Long
Dim PageHeight As Long, lngHeight As Long
Dim Table1, i As Long, RowsHeight
Set Table1 = ThisDocument.Tables(1)
' Xa'c dinh kich co cua trang
With ThisDocument.PageSetup
TopMargin = .TopMargin
BottomMargin = .BottomMargin
PageHeight = .PageHeight
End With
' Xac dinh do cao vung in
lngHeight = PageHeight - TopMargin - BottomMargin
' Tinh tong chieu cao cac dong tru dong cuoi cung
For i = 1 To Table1.Rows.Count - 1
RowsHeight = RowsHeight + Table1.Rows(i).Height
Next i
' Thiet lap chieu cao dong cuoi cung
Table1.Rows(Table1.Rows.Count).Height = lngHeight - RowsHeight
'Application.ScreenUpdating = True
End Sub[/GPECODE]
-Nếu làm thủ công thì dùng chuột đưa đến dòng kẻ ngang cuối cùng và kéo đến sát đáy trang (không bị nhảy sang trang thứ 2)
tức là mình làm giãn rows(13) nếu bảng ngắn & co rows(13) nếu bảng dài sao cho cả bảng vừa khít 1 page
(Nói thêm: bao giờ cũng căn được vào 1 trang vì dữ liệu không nhiều & rows(13) còn thừa rất nhiều)
Tuy nhiên code chạy lại không được.
Xin trợ giúp mình để mình có thể ứng dụng cho nhiều file khác ạ.
[GPECODE=vb]Sub Fit_Table_To_1_Page()
'Application.ScreenUpdating = False
Dim TopMargin As Long, BottomMargin As Long
Dim PageHeight As Long, lngHeight As Long
Dim Table1, i As Long, RowsHeight
Set Table1 = ThisDocument.Tables(1)
' Xa'c dinh kich co cua trang
With ThisDocument.PageSetup
TopMargin = .TopMargin
BottomMargin = .BottomMargin
PageHeight = .PageHeight
End With
' Xac dinh do cao vung in
lngHeight = PageHeight - TopMargin - BottomMargin
' Tinh tong chieu cao cac dong tru dong cuoi cung
For i = 1 To Table1.Rows.Count - 1
RowsHeight = RowsHeight + Table1.Rows(i).Height
Next i
' Thiet lap chieu cao dong cuoi cung
Table1.Rows(Table1.Rows.Count).Height = lngHeight - RowsHeight
'Application.ScreenUpdating = True
End Sub[/GPECODE]
-Nếu làm thủ công thì dùng chuột đưa đến dòng kẻ ngang cuối cùng và kéo đến sát đáy trang (không bị nhảy sang trang thứ 2)
tức là mình làm giãn rows(13) nếu bảng ngắn & co rows(13) nếu bảng dài sao cho cả bảng vừa khít 1 page
(Nói thêm: bao giờ cũng căn được vào 1 trang vì dữ liệu không nhiều & rows(13) còn thừa rất nhiều)
Tuy nhiên code chạy lại không được.
Xin trợ giúp mình để mình có thể ứng dụng cho nhiều file khác ạ.
File đính kèm
Lần chỉnh sửa cuối: