Word cho phép bạn thêm số dòng vào tài liệu. Điều này có nghĩa là chính xác những gì nó nói — mỗi dòng trong tài liệu được đánh số từ đầu đến cuối. Điều này có thể rất hữu ích khi tạo các tài liệu đặc biệt, chẳng hạn như tài liệu pháp lý hoặc khi in bản cứng để tham khảo tiếp theo trên cơ sở từng dòng.

Khi bạn in tài liệu có bật số dòng liên tục, Word sẽ đánh số từng dòng từ đầu đến cuối. Tuy nhiên, nếu bạn chỉ in một lựa chọn (tạo một lựa chọn, hiển thị hộp thoại In và đảm bảo rằng Lựa chọn được chỉ định làm những gì bạn đang in), thì Word sẽ không in số dòng một cách chính xác. Word đánh số các dòng trong vùng chọn như thể nó là toàn bộ tài liệu — bắt đầu từ một dòng và tiếp tục qua vùng chọn. Người ta sẽ nghĩ rằng một cách tiếp cận tốt hơn sẽ là Word in các số dòng theo những gì vùng chọn thực sự thể hiện trong tài liệu. Ví dụ: nếu bạn đã chọn các dòng từ 57 đến 72 làm lựa chọn của mình và sau đó in nó, Word sẽ in các số từ 57 đến 72 ở phía bên trái của bản in, thay vì từ 1 đến 15.

Thật không may, không có cách nào dễ dàng giải quyết vấn đề này. Một cách giải quyết là không in các lựa chọn. (Đề xuất này nghe có vẻ lắt léo hơn ý nghĩa của nó.) Thay vào đó, hãy in các trang. Trong hộp thoại in, chỉ định một phạm vi trang để in, thay vì một lựa chọn. Word giữ đánh số dòng thích hợp, như thể bạn đánh số từ đầu tài liệu.

Một lựa chọn khác là dựa vào macro để thực hiện “công việc bẩn thỉu” cho bạn. Bạn có thể sử dụng macro để đặt lại số dòng đầu được sử dụng cho lựa chọn của mình. Sau đây là một macro đơn giản yêu cầu bạn nhập số dòng bắt đầu, sau đó in lựa chọn của bạn bằng cách sử dụng số dòng đó làm số đầu tiên được in ở bên trái. (Lưu ý rằng macro này không bắt đầu in với số dòng bạn chỉ định — nó sử dụng số bạn chỉ định làm số dòng bắt đầu cho lựa chọn của bạn.)

Sub LineNumbersPrint()

Dim LineNumberStart As Integer     On Error GoTo GetOut

LineNumberStart = InputBox("First line number for printout?", _       "Line Numbers Printout")



With ActiveDocument.PageSetup         With .LineNumbering             .Active = True             .StartingNumber = LineNumberStart         End With     End With

ActiveDocument.PrintOut , Range:=wdPrintSelection

With ActiveDocument.PageSetup         With .LineNumbering             .Active = True             .StartingNumber = 1         End With     End With

GetOut:

End Sub

Sử dụng macro này giả định rằng bạn tra cứu số dòng bắt đầu của lựa chọn trước khi thực sự in. Điều này có thể được thực hiện bằng cách sử dụng tính năng Xem trước khi in của Word, nhưng có thể trở nên mệt mỏi sau một thời gian. Nếu bạn thực hiện khá nhiều thao tác in lựa chọn, macro sau sẽ được bạn quan tâm nhiều hơn. Nó phức tạp hơn, nhưng nó sẽ tự động xác định số dòng thích hợp để sử dụng khi bắt đầu vùng chọn, sau đó in vùng chọn.

Sub Correct_Line_Numbers()

Dim myRng As Range     Dim StartRng As Range     Dim iCount As Integer

'if you include the paragraph mark in your selection, then Word 'prints the subsequent line number; not the entire line, just the 'line number; therefore, if the last character of the current 'selection is a paragraph mark, then move the end position of 'the selection to the left by one character     If Selection.Characters.Last = Chr(13) Then         Selection.MoveEnd Count:=-1     End If

'set the current selection to a variable     Set myRng = Selection.Range

'set the start of the document to a variable     Set StartRng = ActiveDocument.Paragraphs(1).Range

With Selection         'go to the beginning of the line for the current selection and         'set the iCount variable so that it counts the current line         .HomeKey unit:=wdLine         iCount = 1

'if the cursor is not at the beginning of the document         'then move the cursor up by one line         'increment iCount by one each time the cursor is not at         'the beginning of the document         While Not Selection.InRange(StartRng)

.MoveUp unit:=wdLine             iCount = iCount + 1             'if the cursor is in a table, then the macro should             'reduce iCount; Word counts an entire table as one line             If Selection.Rows.Count > 0 Then                 iCount = iCount - 1             End If         Wend     End With

'reset the starting line number so that it equals the     'number of times the cursor was moved up by a line     ActiveDocument.PageSetup.LineNumbering.StartingNumber = iCount

'reselect the original selection     myRng.Select

'print out only the original selection     ActiveDocument.PrintOut Range:=wdPrintSelection

'reset the line number(by "undoing" the last two actions     '[fields update and change line number])

'so that line numbering begins at one     ActiveDocument.Undo     ActiveDocument.Undo

'reselect the original selection     myRng.Select End Sub

Có một cảnh báo với macro này. Nếu bạn có văn bản ẩn trong tài liệu của mình và văn bản ẩn đó được hiển thị nhưng không được thiết lập để in ra, thì macro này vẫn đếm những dòng văn bản đó như thể chúng sẽ in. Nói cách khác, macro giả định rằng bạn đang in văn bản ẩn nếu bạn để nó hiển thị trên màn hình.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (8520) áp dụng cho Microsoft Word 2007, 2010 và 2013.

Bạn có thể tìm phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: