Cách căn nhanh trang in Excel luôn vừa khít trang giấy.

Liên hệ QC

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,467
Nghề nghiệp
Công chức
Tỷ lệ trang in trong Excel mặc định là 100%, nhiều khi gặp bảng tính có kích thước chiều ngang lớn mà muốn trang in luôn vừa khít trang giấy thông thường ta phải vào Page stup để chọn tỷ lệ trang in trong Adjust to, làm theo cách này mất khá nhiều thời gian vì phải điều chỉnh tỷ lệ nhiều lần thì trang in mới vừa khít trang giấy.

Muốn căn một lần được luôn các bạn làm theo cách sau: chọn Menu View -> Page Breack Preview theo chiều đứng bạn sẽ thấy có 2 đường kẻ đậm màu xanh, bạn đưa con trỏ vào đường kẻ đứt, khi mũi tên có 2 đầu thì bạn nhấn giữ chuột kéo sang bên phải để đường kẻ đứt trùng với đường kẻ liền vậy là xong. Trở lại Menu View chọn Normal để trở lại chế độ hiển thị bình thường.

Tương tự cách làm trên nếu dùng VBA ta có code sau:

Mã:
Sub Macro1()
    Application.ScreenUpdating = False
    On Error Resume Next
    
    With ActiveSheet
        .PageSetup.Zoom = 100
        ActiveWindow.View = 2
        .VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
        ActiveWindow.View = 1
    End With
End Sub

Trong file đính kèm các bạn có thể Test bằng cách thêm, bớt cột hoặc điều chỉnh độ rộng cột rồi nhấn nút màu xanh để chạy code
 

File đính kèm

  • Page Autofit.rar
    294.7 KB · Đọc: 5,350
Chỉnh sửa lần cuối bởi điều hành viên:
Mình cũng bị chê là chưa hiểu nhiều về excel. Cảm ơn diễn đàn và các bạn đã chia sẻ thông tin cho mình
 
Làm theo cách của anh là nhanh.
Nhưng với 2007, tôi thử không được. Quên, chưa chạy thử Macro.
Nhưng nếu có thao tác trên E2007 thì giới thiệu.
 
Trong excel tất cả các phiên bản, muốn định dạng trang in vừa với khổ A4 thì vào Page setup, nhưng không chọn và gõ mò Adjust to .... %.

Hãy chọn fit to 1 page(s) wide và để trống ô by ... tall
 
Tôi đã thử ở excel 2010, code của TrungChinh chạy tốt mà. Bạn có file mẫu 2003 thì mở excel 2007 rồi save as sang 2007 thì biết ngay, cần gì phải giới thiệu thao tác trên E2007 nữa.
 
Không phải lúc nào dùng VBA cũng có lợi đâu anh Long ạ. Chả lẽ mỗi file excel lại chép vào đoạn code trên?
Trừ khi anh dùng thường xuyên, thì lưu code dưới dạng xla và dùng.
 
cung chinh rui ma sao k duoc?huhu
 
Các bạn cho mình hỏi trong word 2007 có cách nào gom trang in bị thừa một hai hàng thành đúng một trang không ? Ví dụ trang văn bản giấy A4 tôi in ra ở trang 1 bị thiếu hai hàng cuối do bị thừa trang, in qua trang thứ 2.Nếu canh lề lại hoặc sửa cở chử thì rờm rà và mất thời giang,vậy có cách nào làm giống bên excel : chọn Menu View -> Page Breack Preview theo chiều đứng bạn sẽ thấy có 2 đường kẻ đậm màu xanh, bạn đưa con trỏ vào đường kẻ đứt, khi mũi tên có 2 đầu thì bạn nhấn giữ chuột kéo sang bên phải để đường kẻ đứt trùng với đường kẻ liền vậy là xong không các bạn giúp mình nhé.
 
mình vào xem print preveiw lại trắng k có nội dung là sao?hay chỉ cần làm theo hướng dẫn r in ra là dc ạ moi ng chi giup vs
 
Không phải lúc nào dùng VBA cũng có lợi đâu anh Long ạ. Chả lẽ mỗi file excel lại chép vào đoạn code trên?
Trừ khi anh dùng thường xuyên, thì lưu code dưới dạng xla và dùng.
Bạn ptm0412 cho mình hỏi cách lưu code dưới dạng xla là thế nào?
Hiện tôi dang làm thế này nhưng kết quả không được
1. Save as file excel có chứa code sang dạng đuôi .xlam
2. Mở file excel mới lên vào add in chọn file vừa mới tạo ở bước 1
3. kết quả là không thấy phần add in nổi trên thanh Ribbon của file excel.
Phiên bản execl tôi dang dùng là 2007 và 2010
À, trước khia tôi dùng excel 2003 thì làm được.
Bạn có cách nào chỉ tôi với.
Cảm ơn bạn
 
?
Hiện tôi dang làm thế này nhưng kết quả không được
1. Save as file excel có chứa code sang dạng đuôi .xlam
2. Mở file excel mới lên vào add in chọn file vừa mới tạo ở bước 1
3. kết quả là không thấy phần add in nổi trên thanh Ribbon của file excel.
Phiên bản execl tôi dang dùng là 2007 và 2010
À, trước khia tôi dùng excel 2003 thì làm được.
Bạn có cách nào chỉ tôi với.
Cảm ơn bạn
1) Tôi thấy file add in có đuôi là .xla chứ đâu phải .xlam???
3) Làm sao add in có thể hiện lên thanh Ribbon (trừ 1 số add in...) Tôi đang dùng nhiều add in trên excel 2010 đâu có hiện lên thanh Ribbon, ví dụ như add in =VND()
Bạn đã add in vào excel theo đường dẫn C:\Users\Administrator\AppData\Roaming\Microsoft\AddIns (với Win 7) chưa?
 
Bạn ptm0412 cho mình hỏi cách lưu code dưới dạng xla là thế nào?
Hiện tôi dang làm thế này nhưng kết quả không được
1. Save as file excel có chứa code sang dạng đuôi .xlam
2. Mở file excel mới lên vào add in chọn file vừa mới tạo ở bước 1
3. kết quả là không thấy phần add in nổi trên thanh Ribbon của file excel.
Phiên bản execl tôi dang dùng là 2007 và 2010
À, trước khia tôi dùng excel 2003 thì làm được.
Bạn có cách nào chỉ tôi với.
Cảm ơn bạn
xla hay xlam đều là add-in, nhưng xlam chỉ dùng cho 2007 trở về sau.
Tuy vậy, cả 2 loại nếu không có code tạo menu sẽ không có menu (2007 trở lên là ribbon). Các đoạn thủ tục thường dùng thì nên tạo phím tắt cho nó, sau đó sử dụng phím tắt kiu code chạy.
 
xla hay xlam đều là add-in, nhưng xlam chỉ dùng cho 2007 trở về sau.
Tuy vậy, cả 2 loại nếu không có code tạo menu sẽ không có menu (2007 trở lên là ribbon). Các đoạn thủ tục thường dùng thì nên tạo phím tắt cho nó, sau đó sử dụng phím tắt kiu code chạy.
Cảm ơn bạn.
Tôi có đoạn code thế này:
Sub TongHop()
Dim Tmp, Arr(), i As Long, k As Long
ReDim Arr(1 To 30000, 1 To 9)
Tmp = Sheets("A").[C5:I10000]
For i = 1 To UBound(Tmp)
If IsEmpty(Tmp(i, 1)) Then Exit For
k = k + 1
Arr(k, 1) = k: Arr(k, 4) = Tmp(i, 1): Arr(k, 5) = Tmp(i, 3): Arr(k, 6) = Tmp(i, 5): Arr(k, 7) = Tmp(i, 7)
Next
Tmp = Sheets("B").[E5:M10000]
For i = 1 To UBound(Tmp)
If IsEmpty(Tmp(i, 1)) Then Exit For
k = k + 1
Arr(k, 1) = k: Arr(k, 4) = Tmp(i, 1): Arr(k, 5) = Tmp(i, 3): Arr(k, 6) = Tmp(i, 5): Arr(k, 7) = Tmp(i, 9)
Next
Tmp = Sheets("C").[C5:K10000]
For i = 1 To UBound(Tmp)
If IsEmpty(Tmp(i, 1)) Then Exit For
k = k + 1
Arr(k, 1) = k: Arr(k, 4) = Tmp(i, 1): Arr(k, 5) = Tmp(i, 5): Arr(k, 6) = Tmp(i, 7): Arr(k, 7) = Tmp(i, 9)
Next
With Sheets("Tong Hop")
.[A5:I30000].Clear
With .[A5].Resize(k, 9)
.Value = Arr
.Borders.LineStyle = 1
.Font.Name = "Courier New"
.Font.Size = 10
End With
With .[G5].Resize(k)
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
End With
End Sub

1. Phải thêm code vào như thế nảo để để khi chuyển sang add in(xlam) thì có menu Ribbon.
Code này mình dùng để chạy cho gần 50 file excel mỗi tháng.
2. Bạn hướng dẫn cách tạo phím tắt và sau đó kiu code chạy.
Cảm ơn bạn
 
Code để có nút lệnh trên ribbon là hẳn 1 chuyên đề riêng, bạn tìm kiếm đi.
Còn phím tắt là vầy:
Trước khi save as xlam, bạn nhấn Ctrl F8, chọn đoạn thủ tục trên, nhấn nút Option, và gán phím tắt vào 1 ô nhỏ nhỏ trên đó. Bạn có thể ghi chú vào code hoặc vào description để ghi nhớ phím tắt này.
Sau đó hãy save as xlam.
Lý do là khi đã là xlam rồi và add vào, code có thể chạy, có thể tìm để xem, để sửa, ... nhưng không liệt kê trong Ctrl F8 để chỉnh sửa option.

Đó là nói chung. Còn đoạn code của bạn thì tôi không biết có chạy đúng ý bạn chưa, nhưng nó đang trỏ tới những sheet có tên cụ thể, những vùng dữ liệu cụ thể và những ô cụ thể. Nên nếu file nào đó không có sheet tên đó, sẽ không chạy. File nào dữ liệu nằm khác chỗ, nó sẽ chạy bậy.

Vậy thì nếu bạn chắc chắn rằng mỗi tháng 50 file có cùng cấu trúc sheet, range, cell, ... Một năm 600 file cùng cấu trúc sheet, range, cell, ... thì cứ thử lưu thành add-in và dùng.
 
Lần chỉnh sửa cuối:
Code để có nút lệnh trên ribbon là hẳn 1 chuyên đề riêng, bạn tìm kiếm đi.
Còn phím tắt là vầy:
Trước khi save as xlam, bạn nhấn Ctrl F8, chọn đoạn thủ tục trên, nhấn nút Option, và gán phím tắt vào 1 ô nhỏ nhỏ trên đó. Bạn có thể ghi chú vào code hoặc vào description để ghi nhớ phím tắt này.
Sau đó hãy save as xlam.
Lý do là khi đã là xlam rồi và add vào, code có thể chạy, có thể tìm để xem, để sửa, ... nhưng không liệt kê trong Ctrl F8 để chỉnh sửa option.

Đó là nói chung. Còn đoạn code của bạn thì tôi không biết có chạy đúng ý bạn chưa, nhưng nó đang trỏ tới những sheet có tên cụ thể, những vùng dữ liệu cụ thể và những ô cụ thể. Nên nếu file nào đó không có sheet tên đó, sẽ không chạy. File nào dữ liệu nằm khác chỗ, nó sẽ chạy bậy.

Vậy thì nếu bạn chắc chắn rằng mỗi tháng 50 file có cùng cấu trúc sheet, range, cell, ... Một năm 600 file cùng cấu trúc sheet, range, cell, ... thì cứ thử lưu thành add-in và dùng.
Cảm ơn bạn!
tôi đã làm theo tất cả những gì bạn mô tả nhưng không có kế quả, tôi có gửi file lên nhờ bạn kiểm tra giùm tôi với.
Cảm ơn
 

File đính kèm

  • Code Lay Du Lieu.xlsm
    23.8 KB · Đọc: 52
Bạn copy code vào 1 module trên 1 file mới trắng tinh, xoá hết sheet chỉ chừa lạ 1 sheet cho nhẹ.
Sau đó nhấn Alt F8, chọn thủ tục, nhấn nút option, gắn shortcut key, ok (Bài trên tôi gõ nhầm thành Ctrl F8, xin lỗi bạn)
Sau đó save as xlam
Sau đó đóng file
Sau đó cài add-in cho excel
Sau đó nhấn thank bài này
 
Lần chỉnh sửa cuối:
Có cách nào Setup trang in bang tính Excel 2003 để in hết cở ra sát biên 2 bên không? Đối với Excel 2007 thì có nhưng sao Excel 2003 lại không in hết được sát biên 2 bên, mặc dù đã chỉnh 2 biên(left =0 và Right =0) nhưng xem trang in và in còn 2 bên từ 1,5 - 2cm
 
Có cách nào Setup trang in bang tính Excel 2003 để in hết cở ra sát biên 2 bên không? Đối với Excel 2007 thì có nhưng sao Excel 2003 lại không in hết được sát biên 2 bên, mặc dù đã chỉnh 2 biên(left =0 và Right =0) nhưng xem trang in và in còn 2 bên từ 1,5 - 2cm
1) "có cách nào" nhưng không có chủ ngữ là ai?
2) Bạn hãy kéo độ rộng cột ra hết cỡ, scale là 100%, lề trái = phải = 0. Rồi View in thử xem.
 
Cảm ơn bạn giúp, nhưng mình đã nhầm khi không đưa file cụ thể. Ý mình là muốn in hết trang in, kèm theo đó là hình nền chìm có khung viên kèm theo file dưới đây. Khi mở trên máy, với Office 2007 thì xem và in được cả trang in có hình nền, Còn mở và in trên máy, với Office 2003 thì khi xem trang in (Print preview) mất khung viền hình nền 2 bên và in cũng không có khung viền hình nền 2 bên.
Có cách nào không? Nhờ mọi người giúp đỡ, xin cám ơn nhiều.
 

File đính kèm

  • trang in co logo.xls
    252.5 KB · Đọc: 38
  • Print preview Excel 2003.jpg
    Print preview Excel 2003.jpg
    121.7 KB · Đọc: 45
  • Print preview excel 2007.jpg
    Print preview excel 2007.jpg
    104.6 KB · Đọc: 30
upload_2017-7-3_14-10-49.png
Chào mọi người!
ví dụ em có 1 bảng tính gồm có 10 cột từ A đến J, mỗi cột có ColumnWidth = 6.78
bây giờ em muốn viết code để chỉnh ColumnWidth cột J rộng thêm 1 chút để cho vừa luôn với việc canh lề thì em phải viết code như thế nào?
nếu em kéo thủ công cột J thành 7.33 thì sẽ vừa với trang giấy 6.78+0.55 = 7.33
vậy làm sao để có thể viết code tính được con số còn lại là 0.55 để cộng thêm đó
 
Web KT
Back
Top Bottom