Gán Heading (Styles) để xuất Mục lục (Table of contents) cho văn bản Word

Liên hệ QC

cantl

!!! Giải thoát !!!
Thành viên bị đình chỉ hoạt động
Tham gia
6/8/08
Bài viết
1,631
Được thích
1,034
Giới tính
Nam
Các bác ạ,
Các văn bản nhà ta được định dạng tương đối rõ ràng, tuy nhiên không luôn dùng Heading để tạo mục lục, tra cứu khó khăn.
Do đó, nhờ các bác bớt chút thời gian code cho em cũng như mọi người để tiện hơn trong việc tra cứu.

Yêu cầu là duyệt qua các Tiêu đề (hiện nhận dạng bằng in đậm và các chữ "Phần", "Điều", ... bằng Unicode) và gán cho nó heading phù hợp để xuất Mục lục như trang đầu.

Em chỉ đưa lên file mẫu để có ý tưởng, vì các văn bản luật, nghị định nó bố trí thêm Chương, Mục, Phần, Điều, ... nên hơi phức tạp. Khả năng là sẽ chỉnh dần dần cho phù hợp từng thể loại.

Hiện em vẫn dùng Format Painter làm thủ công, nên các bác có thời gian cứ từ từ ngâm cứu ạ.
 

File đính kèm

  • mau-hop-dong-tu-van.docx
    31.2 KB · Đọc: 15
Cần gi format painter. Làm cái đầu tiên, chọn cái thứ nhì, nhấn F4, cứ thế ...
Kể cả dùng Format Painter, có biết cách nhúng 1 lần sơn quét cho nhiều lần chưa?
 
Lần chỉnh sửa cuối:
Cần gi format painter. Làm cái đầu tiên, chọn cái thứ nhì, nhấn F4, cứ thế ...
Kể cả dùng Format Painter, có biết cách nhúng 1 lần sơn quét cho nhiều lần chưa?
Nhấn đúp quét nhiều lần thì em biết.
Nhưng F4 là của excel chứ bác, tí em xem lại.

Trường hợp em đang nói đến là để tạo mục lục cho nhiều file sẽ gặp, file trên là hợp đồng theo mẫu 2023, còn mấy cái thông tư lúc có mục lục, lúc không nữa. Điểm chung là "từ khóa, in đậm" để duyệt lần lượt.

Hiện tại chưa có code nào nên em vẫn quét thủ công. Nhưng mà tầm 4 heading thì lăn chuột cũng mỏi tay phết bác ạ.
 
Dùng Wildcard find:
[0-9]{1,2}. Chương*^p
[0-9]{1,2}.[0-9]{1,2}. Mục*^13 1
Hoặc i. Điều*^p
để tìm các chương, các điều
Click vào style sẽ đổi chúng sang style ấy.
Record macro
Chỉnh sửa tùy ý
Chạy macro bằng cách nhấn F5.

Lưu ý:
1. Nếu ^p không hoạt động thì dùng ^13
2. Làm từng chương, 100 chương thì nhấn f5 100 lần. Kinh nghiệm cho tôi biết văn bản nào cũng có thể sai sót, làm 100 lần có vẻ lâu nhưng tôi kiểm soát được dễ dàng hơn làm cả cụm.
Mỗi lần nhấn F5 thì xem cái bảng Navigation bên trái xem nó có cập nhât?
3. Làm lần lượt cho Chương, Mục, Điều. Tuy các pattern trên có thể chỉnh để làm luôn 3 cái một lượt. Như đã nói ở điều 2, tuy chậm nhưng cũng là dịp để xem lại những chỗ sai sót.
 
Dùng Wildcard find:
[0-9]{1,2}. Chương*^p
[0-9]{1,2}.[0-9]{1,2}. Mục*^13 1
Hoặc i. Điều*^p
để tìm các chương, các điều
Click vào style sẽ đổi chúng sang style ấy.
Record macro
Chỉnh sửa tùy ý
Chạy macro bằng cách nhấn F5.

Lưu ý:
1. Nếu ^p không hoạt động thì dùng ^13
2. Làm từng chương, 100 chương thì nhấn f5 100 lần. Kinh nghiệm cho tôi biết văn bản nào cũng có thể sai sót, làm 100 lần có vẻ lâu nhưng tôi kiểm soát được dễ dàng hơn làm cả cụm.
Mỗi lần nhấn F5 thì xem cái bảng Navigation bên trái xem nó có cập nhât?
3. Làm lần lượt cho Chương, Mục, Điều. Tuy các pattern trên có thể chỉnh để làm luôn 3 cái một lượt. Như đã nói ở điều 2, tuy chậm nhưng cũng là dịp để xem lại những chỗ sai sót.
Để em thử, trong khi chưa có code liền tù tì thì F5 nhiều lần vẫn ngon hơn lăn chuột và quét bác ạ.
 
Để em thử, trong khi chưa có code liền tù tì thì F5 nhiều lần vẫn ngon hơn lăn chuột và quét bác ạ.
Page Down, tới dúng chố, nếu chuột ở đâu dòng thì click đúp, nếu ở giữa dòng thi click 3 lần. Nó sẽ chọn nguyên dòng.
Nhanh hơn lăn chuột và quét.
 
Page Down, tới dúng chố, nếu chuột ở đâu dòng thì click đúp, nếu ở giữa dòng thi click 3 lần. Nó sẽ chọn nguyên dòng.
Nhanh hơn lăn chuột và quét.
Không được đâu bác. Chuột em nó lỗi lúc thì đúp, lúc thì đơn. Chiều tối em phải tháo ra lau. Ôi con logi 221 silent thân yêu.
 
Không được đâu bác. Chuột em nó lỗi lúc thì đúp, lúc thì đơn. Chiều tối em phải tháo ra lau. Ôi con logi 221 silent thân yêu.
Tôi ghét chuột của Logitec lắm. Nó cần phải load driver riêng. Mà cái driver như hạch, ba bữa nó bị chạm với cái gì đó trong Windows hoặc phần mềm khác, thế là nó trơ ra, phải load lại driver.
 
Em thử thế này mới đúng cơ:
Điều [0-9]{1,2}. *^13

Nhưng đến Chương IV thì em không biết regex nó thế nào bác ạ.
Bác thế nào chứ tầm giá 200-300k thì em dùng mướt lắm. Cũng 2 năm rồi nên chắc nó nghỉ hưu thôi. Mà em kết cái quả silent, chứ phòng im lặng, nghe tiếng gõ phím và tiếng chuột kêu ức chế vô cùng luôn.
Và không load driver bác nhé, khả năng bác dùng chuột game 1-2tr.
 

File đính kèm

  • 1684829578787.png
    1684829578787.png
    172.9 KB · Đọc: 9
Không được bác ạ, cả viết thường và viết hoa cũng không tìm được.
Bài đã được tự động gộp:


Có trong Word bác nhé. :D :D :D
Như hình thì tìm bằng chuỗi này: Chương [IVX]{1,3}*^13
Không có khoảng trống phía trước dấu *
 
Như hình thì tìm bằng chuỗi này: Chương [IVX]{1,3}*^13
Không có khoảng trống phía trước dấu *
Chuẩn rồi bác ạ. Nhưng bác có thể giải thích đoạn này em hiểu được không?
[IVX]{1,3}

Em đoán ký tự la mã là tìm trong chuỗi, còn số 1,3 là sao, vì em thay 1,100 cũng vẫn ra bác ạ.
 
Tôi quên xét lại nên bị sai chút xíu.
Lúc đầu thì viết là ^p, nhưng sau nhớ lại RegEx không nhận ký tự này, mà phải dùng ^13
Lúc sửa lại chì chỉ có phân "Điều..." mà quên mất hai phần còn lại.

Chuẩn rồi bác ạ. Nhưng bác có thể giải thích đoạn này em hiểu được không?
[IVX]{1,3}

Em đoán ký tự la mã là tìm trong chuỗi, còn số 1,3 là sao, vì em thay 1,100 cũng vẫn ra bác ạ.
Trong ví dụ trên [0-9] là về chữ số. Nếu bạn dùng số la mã thì nó là chữ alphabet.
Cá ký tự trong dấu ngoặc vuông là những ký tự cần tìm, chữ số trong dấu ngoặc xoắn là các chứ số trên có thể lặp lại "từ ... đến ... lần".
Trong list trên thiếu L (50) [ILVX]. Và 1,3 chưa đủ. Số 8 (XIII) có đến 4.
 
Em đã ứng dụng được để dùng cho tiêu đề xuống dòng. :D :D :D
 

File đính kèm

  • 1684833338943.png
    1684833338943.png
    234.3 KB · Đọc: 13
Không xuống dòng thì em xóa 1 cục 13 đuôi đi thôi. Vì tiêu để nhà ta lúc thì xuống dòng, lúc lại viết liền nên tùy cơ ứng biến bác ạ.
Bạn thử mẫu này, có thể dùng chung để tìm chữ hoa/ chữ thường, không xuống dòng và xuống dòng ngay sau số la mã.
Mã:
[Cc][Hh][Ưư][Ơơ][Nn][Gg] [IVXLivxl]{1,}?{2,}^13
 
Web KT
Back
Top Bottom