Hakan cần một macro đếm các ký tự (không có dấu cách) trong một tài liệu word và đánh dấu mỗi chữ cái thứ 1000. Việc tạo một macro như vậy khá đơn giản — bạn chỉ cần lần lượt kiểm tra tất cả các ký tự trong tài liệu và chỉ đếm những ký tự không phải là dấu cách. Sau đây là một macro nhỏ đơn giản sẽ thực hiện điều đó:

Sub CountThousands1()

Dim J As Long     Dim X As Integer

X = 0     With ActiveDocument         For J = 1 To .Characters.Count             If .Characters(J) <> " " Then X = X + 1             If X = 1000 Then                 .Characters(J).Select                 Selection.Range.HighlightColorIndex = wdYellow                 X = 0                 Beep             End If         Next J     End With End Sub

Macro đủ đơn giản; nó kiểm tra bộ sưu tập Ký tự, chứa tất cả các ký tự riêng lẻ trong một tài liệu. Vấn đề với macro là nó rất chậm – rất chậm. Word không hiệu quả lắm trong việc kiểm tra các ký tự riêng lẻ theo cách này. (Có vẻ như mỗi khi bạn tham chiếu đến một thành viên của bộ sưu tập Ký tự, Word cần phải kiểm tra lại tất cả các ký tự từ đầu tài liệu.)

Một cách tiếp cận khác là chỉ cần lướt qua tài liệu, mở rộng vùng lựa chọn cho đến khi bạn nhận được 1.000 ký tự không phải khoảng trắng.

Sub CountThousands2()

Dim X As Integer     Dim sRaw As String     Dim sProc As String          Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend     While Len(Selection) = 1000         sRaw = Selection         sProc = Replace(sRaw, " ", "")

X = 1000 - Len(sProc)

While X > 0             Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend             sRaw = Selection             sProc = Replace(sRaw, " ", "")

X = 1000 - Len(sProc)

Wend         Selection.Collapse Direction:=wdCollapseEnd         Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend         Selection.Range.HighlightColorIndex = wdYellow         Selection.Collapse Direction:=wdCollapseEnd         Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend     Wend End Sub

Bắt đầu macro này với điểm chèn ở đầu tài liệu. Sau đó, macro sẽ lấy một nghìn ký tự, gán lựa chọn đó cho một biến (sRaw), tạo một biến có tất cả các khoảng trắng bị xóa khỏi nó (sProc) và sau đó tính độ dài của sProc. Nếu nó nhỏ hơn 1.000, thì vùng chọn sẽ được mở rộng tuy nhiên nó ngắn hơn nhiều ký tự và quá trình này được lặp lại. Khi vùng chọn chứa 1.000 ký tự không phải khoảng trắng, thì phần đánh dấu được đặt và macro sẽ chuyển sang khối ký tự tiếp theo.

_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 (7871) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: