Đánh trang tự động trong Excel

Liên hệ QC

trithietke

Thành viên mới
Tham gia
9/1/07
Bài viết
5
Được thích
2
Có ai biết cách tạo một macro để chạy số trang tự động trong Excel không ? chứ cách tạo trang thủ công theo tôi rất mất thời gian quá . Mỗi lần đánh số trang thì cứ phải View xem số trang cuối cùng của trang trước đó là trang mấy ??? rồi mới gõ trang tiếp sau ....Cảm ơn diễn đàn
 
Tại sao bạn lại đánh số trang kỳ cục vậy.
Bản chất số trang là một trường trong excel({PAGE}).
Trong excel thông thường để đánh số trang bạn vào page setup/ chọn header and footer/ chọn cutom là ok thôi chứ có gì (để lấy số trang hiện thời dùng &[Pages].

Còn nếu muốn viết macro làm việc này thì bạn dùng record macro
 
rất cảm ơn ý kiến của bạn đã cho ý kiến, về cái hàm page() thi không có vấn đề gì, nhưng khi có biến cố có nhiều sheet trong 1 Workbook thì vấn đề đánh số trang liên tục thì không thể, ý của mình là muốn viết 01 macro để khi chọn thông số nhập cho 1 trang bắt đầu thì nó chạy 1 vòng lặp từ sheet đầu tiên cho đến sheet cuối cùng theo số thứ tự trang được nhập từ bàn phím. Cảm ơn bạn rất nhiều
 
Việc này tôi cũng đã nêu lên 1 lần nhưng các bạn chưa giải quyết triệt để được. Có 2 cách phải in thông qua 1 Lệnh in lập riêng hoặc phải có cách gì bắt được sự kiện excel({PAGE}) trong lúc in 1 chuỗi các trang trên các sheet khác nhau, các vùng khác nhau.
Nếu làm như vậy được thì thật tuyệt
 
trithietke đã viết:
về cái hàm page() thi không có vấn đề gì, nhưng khi có biến cố (hay trường hợp???) có nhiều sheet trong 1 Workbook thì vấn đề đánh số trang liên tục thì không thể, ý của mình là muốn viết 01 macro để khi chọn thông số nhập cho 1 trang bắt đầu thì nó chạy 1 vòng lặp từ sheet đầu tiên cho đến sheet cuối cùng theo số thứ tự trang được nhập từ bàn phím. Cảm ơn bạn rất nhiều
Dear trithietke,
--------------
Yêu cầu của bạn không phải là vấn đề chung của Excel nữa rồi!
Nếu bạn lười không muốn điền bằng tay vào First number page trong Page Setup (Alt+F+U+R) cho từng Sheet thì đành phải lập trình vậy! Bạn tìm hiểu thuộc tính HPageBreaks của Worksheet để biết Worksheet có bao nhiêu trang:
Dim lngPageCount As Long, mySheet As Worksheet
Set mySheet = ActiveSheet
Dim strPageEndRow As String
lngPageCount = mySheet.HPageBreaks.Count
Debug.Print "Sheet '" & mySheet.Name & "' có " & lngPageCount &" trang!"

Bạn tham khảo thêm hai bài viết sau:
1. Tạo ra dòng 'tổng đến hết trang' và 'số mang sang' cho bảng tính nhiều trang
2. Tạo dòng "Tổng cộng cuối trang"
 
Có ai biết cách tạo một macro để chạy số trang tự động trong Excel không ? chứ cách tạo trang thủ công theo tôi rất mất thời gian quá . Mỗi lần đánh số trang thì cứ phải View xem số trang cuối cùng của trang trước đó là trang mấy ??? rồi mới gõ trang tiếp sau ....Cảm ơn diễn đàn

Giải pháp cho vấn đề này như sau :
1. Trước hết, bạn vào Page setup và điều chỉnh đánh số trang tại header/footer
2. Nếu chỉ có 1 sheet thì số trang sẽ bắt đầu từ 1 (mặc định) và kết thúc tại trang cuối.
3. Nếu có nhiều sheet và bạn muốn đánh số liên tục cho tất cả các sheet thì bạn cần làm theo trình tự sau :
- Sắp xếp tất cả các sheet theo đúng thứ tự sau khi in ra.
- Giữ phím Ctrl và click chuột trái lên tất cả các sheet cần in.
- Print Preview, bạn sẽ thấy số trang sẽ hoàn toàn tăng tự động và liên tục giữa các sheet.
- Và bây giờ thì chọn lệnh in thôi !
 
Chào cả nhà,
Em muốn hỏi về cách đánh số trang trong excel. Ví dụ em có 1 file excel có 3 sheet và mỗi sheet có 3 trang. Làm thế nào để đánh số trang từ trang đầu tiên của sheet 1 đến trang cuối cùng của sheet 3 theo thứ tự ?
 
Chào cả nhà,
Em muốn hỏi về cách đánh số trang trong excel. Ví dụ em có 1 file excel có 3 sheet và mỗi sheet có 3 trang. Làm thế nào để đánh số trang từ trang đầu tiên của sheet 1 đến trang cuối cùng của sheet 3 theo thứ tự ?
Tôi có cách chỉ giúp bạn rất đơn giản như sau:
Ở sheet 1 bạn vào View/Header and Footer; chọn Tab Header/Footer ; bạn chọn Custom Header... hoặc Custom Footer tùy thuộc vào bạn muốn cho hiện số trang trên đầu hay ở dưới. Sau đó bạn chọn biểu tượng Insert Page.
Qua sheet 2 bạn cũng làm như vậy, nhưng sau đó bạn gõ vào tiếp theo &Page+(số trang sheet 1) thế là được. Nhớ là phải có dấu Space ở phía sau số trang.
Tương tự qua sheet 3 bạn cũng làm như thế.
Trường hợp của bạn thì bạn gõ ở sheet 2 như sau &[Page]+3
Ở sheet 3 thì bạn gõ như sau &[Page]+6
Nhớ là phải có thêm dấu Space (khoảng trắng) ở phía sau số 3 và số 6 nghen bạn.
Chúc bạn thành công!!!!

Tôi sẽ gởi cho bạn 1 file excel làm như thế.
Xin lỗi bạn, mình không biết cách tải file lên từ forum này.
 
Lần chỉnh sửa cuối:
Làm thế nào đánh thứ tự từng trang trong excel?

Tôi hỏi rõ hơn chút, tôi muốn đánh số thứ tự từng trang trong excel như là 1,2,3....8,9,10...mà ko hiểu vào đâu để tự động. Chẳng nhẽ lại vào từng trang như mấy bác hưỡng dẫn ah? lâu quá nhỉ. Bác nào biết chỉ bảo với nha. Làm ơn viết từng bước rõ ràng chút. Thanks!
 
Bạn vào Page setup -> Header/footer -> Custom footer -> Kích nút Page. Không biết như vậy có đúng ý bạn ko.
 
Chào bạn,

Tôi làm báo giá (báo giá có thể là 1 trang hoặc 10 trang), trong cell B10 tôi muốn ghi số trang/tổng số trang: ví dụ: trang 2/5. Vậy có hàm nào có thể làm được việc này không?

Cám ơn.
 
Chào bạn,

Tôi làm báo giá (báo giá có thể là 1 trang hoặc 10 trang), trong cell B10 tôi muốn ghi số trang/tổng số trang: ví dụ: trang 2/5. Vậy có hàm nào có thể làm được việc này không?

Cám ơn.

Mình chỉ thường đánh trang báo theo kiểu ở footer để báo cho nhà thầu biết họ đang xem trang thứ mấy trên tổng số mấy trang.
Cách làm thì như các anh trên đã bàn.
@$@!^%
Mình thường View > Page Layout > Click chuột vào khung footer > Nhấn thẻ Design > Click Page NumberNumber of page rồi thêm bớt vài chữ cần thiết khác rồi thoát ra thì sẽ được như hình sau:
Office-PageNumberinExcel.jpg


Còn việc ghi số trang/tổng số trang vào 1 ô bất kì trong bảng tính thì hỏi nhờ các sư huynh khác chỉ giáo thêm.

+-+-+-+
 
điền số trang tổng vào cell trong excell

cho mình hỏi mình muốn điền số trang cuối cùng vào một cêl trong excell thì phải làm cách nào. bạn nào biết thì giúp mình với. thanks nhiều.
 
Thử đoạn code này nhé các bạn:
---------

PHP:
Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim trangdau As Variant
Dim Sh As Worksheet
Application.ScreenUpdating = False
lai:
trangdau = InputBox(Prompt:="Danh so trang", Title:="Nhap trang dau tien!", Default:="0")
If trangdau <= 0 Or IsNumeric(trangdau) = False Then
    MsgBox "Nhap lai trang dau"
    GoTo lai
End If
For Each Sh In ActiveWorkbook.Worksheets
        Sh.Activate
        With ActiveSheet.PageSetup
                '.LeftFooter = ""
                .CenterFooter = "&P"
                '.RightFooter = ""
                .FirstPageNumber = trangdau
                '.PrintErrors = xlPrintErrorsDisplayed
        End With
        trangdau = trangdau + ExecuteExcel4Macro("Get.Document(50)")
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub
-----------
 
Chỉnh sửa lần cuối bởi điều hành viên:
Thử đoạn code này nhé các bạn:
---------
Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim trangdau As Variant
Dim Sh As Worksheet
Application.ScreenUpdating = False
lai:
trangdau = InputBox(Prompt:="Danh so trang", Title:="Nhap trang dau tien!", Default:="0")
If trangdau <= 0 Or IsNumeric(trangdau) = False Then
MsgBox "Nhap lai trang dau"
GoTo lai
End If
For Each Sh In ActiveWorkbook.Worksheets
Sh.Activate
With ActiveSheet.PageSetup
'.LeftFooter = ""
.CenterFooter = "&P"
'.RightFooter = ""
.FirstPageNumber = trangdau
'.PrintErrors = xlPrintErrorsDisplayed
End With
trangdau = trangdau + ExecuteExcel4Macro("Get.Document(50)")
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub
-----------
hihi. cảm ơn bạn nhiều. mình làm được thành công rồi. chỉ cần 1 cái click chuột là tất cả các sheet sẽ được đánh số trang 1 cách tự động theo trình tự trong 1 workbook.
THANKS, THANKS.....100 lần @$@!^%
Cảm ơn những đóng góp của các bạn
 
Tôi có cách chỉ giúp bạn rất đơn giản như sau:
Ở sheet 1 bạn vào View/Header and Footer; chọn Tab Header/Footer ; bạn chọn Custom Header... hoặc Custom Footer tùy thuộc vào bạn muốn cho hiện số trang trên đầu hay ở dưới. Sau đó bạn chọn biểu tượng Insert Page.
Qua sheet 2 bạn cũng làm như vậy, nhưng sau đó bạn gõ vào tiếp theo &Page+(số trang sheet 1) thế là được. Nhớ là phải có dấu Space ở phía sau số trang.
Tương tự qua sheet 3 bạn cũng làm như thế.
Trường hợp của bạn thì bạn gõ ở sheet 2 như sau &[Page]+3
Ở sheet 3 thì bạn gõ như sau &[Page]+6
Nhớ là phải có thêm dấu Space (khoảng trắng) ở phía sau số 3 và số 6 nghen bạn.
Chúc bạn thành công!!!!

Tôi sẽ gởi cho bạn 1 file excel làm như thế.
Xin lỗi bạn, mình không biết cách tải file lên từ forum này.

Cám ơn bạn nhiều lắm. mày mò hoài giờ đã thông. Mình cũng làm như bạn nhưng không biết đánh dấu cách nên không được. Nhưng tại sao phải đánh dấu cách mình chẳng hiểu? Nhưng biết thế là OK rồi
 
chào các bạn! các bạn cho mình hỏi, vấn đề lập trình trong excell có khó không vậy, mình rất muốn lập trình được một thứ gì đó nhưng mình không có căn bản
 
chào các bạn! các bạn cho mình hỏi, vấn đề lập trình trong excell có khó không vậy, mình rất muốn lập trình được một thứ gì đó nhưng mình không có căn bản
Trong diễn đàn có chuyên mục về lập trình đó bạn. Nói chung vọc mãi rồi cũng biết. Nếu muốn học bài bản thì bạn đăng ký tham gia các lớp học về VBA, trên diễn đàn cũng có đấy. Nếu muốn tự nghiên cứu thì mua sách về tự vọc thôi (gi gỉ gì gi cái gì về excel trên GPE có hết)
 
Mong bạn hướng dẫn chi tiết hơn

Mình đã xem hướng dẫn của bạn và rất muốn áp dụng nhưng không biết làm thế nào để đưa đoạn code này vào máy cả (Mình là dân gà mờ về lập trình mà) vậy mong bạn hướng dẫn cụ thể nhé. Ví dụ mở Excel, vào menu nào... từng bước 1 nhé. Tốt nhất bạn hướng dẫn áp dụng trong office 2010. Cảm ơn trước nhé!
Thử đoạn code này nhé các bạn:
---------

PHP:
Sub DSTrang()
Dim i As Byte, j As Byte
Dim cp As Byte
Dim trangdau As Variant
Dim Sh As Worksheet
Application.ScreenUpdating = False
lai:
trangdau = InputBox(Prompt:="Danh so trang", Title:="Nhap trang dau tien!", Default:="0")
If trangdau <= 0 Or IsNumeric(trangdau) = False Then
    MsgBox "Nhap lai trang dau"
    GoTo lai
End If
For Each Sh In ActiveWorkbook.Worksheets
        Sh.Activate
        With ActiveSheet.PageSetup
                '.LeftFooter = ""
                .CenterFooter = "&P"
                '.RightFooter = ""
                .FirstPageNumber = trangdau
                '.PrintErrors = xlPrintErrorsDisplayed
        End With
        trangdau = trangdau + ExecuteExcel4Macro("Get.Document(50)")
Next
MsgBox "OK"
Application.ScreenUpdating = True
End Sub
-----------
 
Tuyệt! Mình cũng rất cần biết. Bây giờ mới hay!
 
Web KT
Back
Top Bottom