Xuất thông tin từ word sang excel

Liên hệ QC

KhoiSMC

Thành viên thường trực
Tham gia
19/6/09
Bài viết
246
Được thích
32
Thưa các bạn,

Dùng VBA để can thiệp vào file word mục đích để tìm kiếm và lấy ra các thông tin được đánh dấu bởi người sử dụng và xuất chúng sang excel là một việc rất hữu dụng cho người muốn lưu thông tin chính của file word đang đọc. Mình nêu ra vấn đề này mong mọi người cùng góp ý xây dựng thành hiện thực nhé.

- Sử dụng VBA/macro để chạy/can thiệp vào các file words định sẵn trong một folder. Cụ thể trong file đính kèm có file word1, word2.

- Macro sẽ sử dụng các câu lệnh để tìm kiếm các thông tin trong file word được đánh dấu bởi các màu (xanh, đỏ, tím, vàng) hoặc được mô tả trong một ký tự đặc biệt như (ti1 nội dung phần cần lấy thông tin ti1) <-- (ti1 ..... ti1) là ký tự đặc biệt cần lấy thông tin ra.

- Xuất các thông tin này ra một file excel đã được khởi tạo (file này có các cột tiêu đề là các màu (xanh, đỏ, tím, vàng) hoặc ti1, ... ) Macro sẽ tự động mở file cũ này và tìm dòng cuối cùng để cập nhật các thông tin theo đúng các cột tương ứng mà thông tin tin cần lưu vào đó (ví dụ: thông tin được bôi màu đỏ sẽ được để ở cột có tiêu màu đỏ).

Các bạn xem thêm file word1, word2 và file ketqua excel để biết mục đích của quá trình thực hiện nhé.

Xin các bạn giúp đỡ.
Khoi
 

File đính kèm

  • ketqua.xlsx
    10.6 KB · Đọc: 111
  • word1.doc
    70 KB · Đọc: 95
  • word2.doc
    71 KB · Đọc: 71
Lần chỉnh sửa cuối:
Xin các bạn đề xuất ý tưởng thực hiện.

Thanks
Khoi
 
Ở bài toán này có mở rộng hơn so với vấn đề lần trước có trao đổi trên diễn đàn GPE. Mình tổng hợp và up code lên file đính kèm để các bạn tham khảo giúp đỡ nhé. {thanks to siwtom}

Cám ơn nhiều ạ.
Khôi,
 

File đính kèm

  • word1-comments.doc
    70 KB · Đọc: 60
Lần chỉnh sửa cuối:
chào các bạn,

uhm, mình tham khảo một số link trong diễn đàn như
http://www.giaiphapexcel.com/forum/showthread.php?82663-Chuyển-dữ-liệu-từ-Word-sang-Excel/page2

Tuy nhiên, đây chỉ là copy toàn bộ nội dung của file word sang excel thôi, mục đích bài toán mình đặt ra là khi đọc các file word cần lưu ý chỗ nào và đưa vào chủ đề nào (được lọc thành các cột có màu riêng biệt) khi tra cứu/xử lý tiếp bằng excel rất tiện cho tra cứu thông tin khi cần.

Còn bước tiếp theo để sau này mình sẽ tự phát triển thêm:

"phát triển Macro là có thể tự tìm các từ được định nghĩa tại sheet Tags ví dụ như sau:

- Tìm từ được định sẵn như “abc def” thì tìm trong văn bản các từ “abc def” có thể có 2,3 kết quả nhưng chỉ cần một kết quả đại diện.

- NSJV*: Tìm các từ xuất phát từ NSJV còn các ký tự sau là tùy ý. Kết quả tìm kiếm là: NSJV-CP2-2014-2345

- Km???: Tìm các từ bắt đầu bởi Km và 3 ký tự tiếp theo là bất kỳ."


Xin các bạn giúp đỡ như mô tả tại phần #1 mình đã chỉnh sửa lại rồi.

Cám ơn nhiều a,
Khoi
 
Híc, Tinh trạng này mang sách, vở đến nhà anh Hướng để học thôi, có nhiều ý tưởng mà chưa thực hiện được.
 
Mong các bạn trong dịp nghỉ này, giúp đỡ với nhé.

Thanks
Khoi
 
Thưa các bạn,

Dùng VBA để can thiệp vào file word mục đích để tìm kiếm và lấy ra các thông tin được đánh dấu bởi người sử dụng và xuất chúng sang excel là một việc rất hữu dụng cho người muốn lưu thông tin chính của file word đang đọc. Mình nêu ra vấn đề này mong mọi người cùng góp ý xây dựng thành hiện thực nhé.

- Sử dụng VBA/macro để chạy/can thiệp vào các file words định sẵn trong một folder. Cụ thể trong file đính kèm có file word1, word2.

- Macro sẽ sử dụng các câu lệnh để tìm kiếm các thông tin trong file word được đánh dấu bởi các màu (xanh, đỏ, tím, vàng) hoặc được mô tả trong một ký tự đặc biệt như (ti1 nội dung phần cần lấy thông tin ti1) <-- (ti1 ..... ti1) là ký tự đặc biệt cần lấy thông tin ra.

- Xuất các thông tin này ra một file excel đã được khởi tạo (file này có các cột tiêu đề là các màu (xanh, đỏ, tím, vàng) hoặc ti1, ... ) Macro sẽ tự động mở file cũ này và tìm dòng cuối cùng để cập nhật các thông tin theo đúng các cột tương ứng mà thông tin tin cần lưu vào đó (ví dụ: thông tin được bôi màu đỏ sẽ được để ở cột có tiêu màu đỏ).

Các bạn xem thêm file word1, word2 và file ketqua excel để biết mục đích của quá trình thực hiện nhé.

Xin các bạn giúp đỡ.
Khoi

Tôi đã viết code để test thì không tìm được những đoạn mà bạn "bôi mầu" (Text Highlight Color). Nhưng nếu mỗi đoạn đó tôi "bôi mầu" lại thì code tìm thấy.
Vậy bạn đã thao tác như thế nào?

Tốt nhất bạn soạn lại tập tin và với mỗi đoạn cần "bôi mầu" thì làm 2 thao tác:

1. "Bôi đen" (select) đoạn cần "bôi mầu"
2. Thẻ Home --> mục Font --> chọn trong cửa sổ thả xuống "Text Highlight Color" mầu bạn muốn.

Gửi tập tin mới lên để tôi test. Nhớ kèm cả tập tin Excel mới có tất cả các kết quả từ tập tin Word mới.

Tôi cũng có việc của mình, vây hãy kiên nhẫn đợi.

À, thế nếu trong Word có nhiều đoạn cùng có mầu đỏ thì các đoạn đó nhập vào Excel trong những dòng liên tiếp của cột mầu đỏ?
 
Lần chỉnh sửa cuối:
Hay quá, có chuyên gia giúp mình rồi,

Trước tiên mình xin giải thích cách mình tạo color cho dòng text đã bôi màu. Mình đã dùng Shading để bôi màu text là vì mình muốn màu ở word và excel phải giống nhau (do trong excel không có "Text Highlight Color" để bôi màu nên mình dùng shading của word và "Fill Color" trong excel thì màu sẽ hoàn toàn giống nhau). Bạn xem hình đính kèm 1 để hiểu rõ hơn nhé.
Untitled.jpg

Tuy nhiên khi mình download lại file cũ ở #1 thì cũng không hiểu màu mình đã bôi đen thuộc loại nào nữa nên mình đã làm soạn lại hai tập tin word theo hướng dẫn của bạn và kết quả mong muốn trong tập tin excel trong file đính kèm nhờ bạn xem xét tiếp.

À, thế nếu trong Word có nhiều đoạn cùng có mầu đỏ thì các đoạn đó nhập vào Excel trong những dòng liên tiếp của cột mầu đỏ?

--> Những đoạn có cùng màu đỏ với nhau được nhập vào cùng vào một ô và các đoạn đó cách nhau bởi dấu "," (ô kết quả đó nằm trong cột màu đỏ).

P/S:
1. Xin ý kiến bạn nếu có thể dùng Shading trong word để bôi màu liệu chạy code có thể ra được kq mong muốn không? (mục đích để word/excel cùng màu với nhau).
2.
À, thế nếu trong Word có nhiều đoạn cùng có mầu đỏ thì các đoạn đó nhập vào Excel trong những dòng liên tiếp của cột mầu đỏ?

Đúng như siwtom nói, có một số trường hợp đây cũng là một giải pháp hay nhờ bạn đề xuất thêm giải pháp cho trường hợp này.

Cám ơn bạn nhiều nhé.
Khoi.

Tôi đã viết code để test thì không tìm được những đoạn mà bạn "bôi mầu" (Text Highlight Color). Nhưng nếu mỗi đoạn đó tôi "bôi mầu" lại thì code tìm thấy.
Vậy bạn đã thao tác như thế nào?

Tốt nhất bạn soạn lại tập tin và với mỗi đoạn cần "bôi mầu" thì làm 2 thao tác:

1. "Bôi đen" (select) đoạn cần "bôi mầu"
2. Thẻ Home --> mục Font --> chọn trong cửa sổ thả xuống "Text Highlight Color" mầu bạn muốn.

Gửi tập tin mới lên để tôi test. Nhớ kèm cả tập tin Excel mới có tất cả các kết quả từ tập tin Word mới.

Tôi cũng có việc của mình, vây hãy kiên nhẫn đợi.

À, thế nếu trong Word có nhiều đoạn cùng có mầu đỏ thì các đoạn đó nhập vào Excel trong những dòng liên tiếp của cột mầu đỏ?
 

File đính kèm

  • ketquarev.xlsx
    10.2 KB · Đọc: 50
  • word2rev.doc
    70 KB · Đọc: 26
  • word1rev.doc
    69.5 KB · Đọc: 31
Hay quá, có chuyên gia giúp mình rồi,

Trước tiên mình xin giải thích cách mình tạo color cho dòng text đã bôi màu. Mình đã dùng Shading để bôi màu text là vì mình muốn màu ở word và excel phải giống nhau (do trong excel không có "Text Highlight Color" để bôi màu nên mình dùng shading của word và "Fill Color" trong excel thì màu sẽ hoàn toàn giống nhau). Bạn xem hình đính kèm 1 để hiểu rõ hơn nhé.
View attachment 120575

Tuy nhiên khi mình download lại file cũ ở #1 thì cũng không hiểu màu mình đã bôi đen thuộc loại nào nữa nên mình đã làm soạn lại hai tập tin word theo hướng dẫn của bạn và kết quả mong muốn trong tập tin excel trong file đính kèm nhờ bạn xem xét tiếp.



--> Những đoạn có cùng màu đỏ với nhau được nhập vào cùng vào một ô và các đoạn đó cách nhau bởi dấu "," (ô kết quả đó nằm trong cột màu đỏ).

P/S:
1. Xin ý kiến bạn nếu có thể dùng Shading trong word để bôi màu liệu chạy code có thể ra được kq mong muốn không? (mục đích để word/excel cùng màu với nhau).
2.


Đúng như siwtom nói, có một số trường hợp đây cũng là một giải pháp hay nhờ bạn đề xuất thêm giải pháp cho trường hợp này.

Cám ơn bạn nhiều nhé.
Khoi.

Câu hỏi:

1. Hiện tại bạn cho 2 tập tin dùng chung 1 "tiêu đề mầu". Bạn có chắc là trong tương lai các tập tin mới cũng có đúng các mầu đó và cũng đúng các ti1, ti2 đó? Hay sẽ có thêm các mầu khác? Hoặc vd. thêm ti3, ti4, thậm chí hehe1, hichic2, tenten5. Hoặc sau một thời gian khi tô mầu cho tập tin mới thì bạn chọn không đúng so với mầu đã dùng trong Excel vd. mầu vàng đã dùng - thay cho vàng 100% thì chọn vàng "lơ lớ", tức vàng 99%?

2. Các ti1, ti2. Tôi hiểi là ta không tìm trong comment mà chỉ tìm trực tiếp trong văn bản. Đúng thế? Và tìm các text nằm giữa cặp (ti1 và ti1)? Các cặp đó có dạng thế nào? Chắc chắn là tik với k là số nguyên dương hay cũng có thể bất kỳ, tức

Mã:
[B][COLOR=#ff0000](gì gì đó[/COLOR][/B] he he he, hic hic [B][COLOR=#ff0000]gì gi đó)[/COLOR][/B]

mà trong đó "cặp ngoặc" là cặp (gì gì đó và gì gi đó)?

Tức trong văn bản chỗ này có thể có (he he he Trúng lô đề rồi he he he), chỗ khác có (buồn quá Thế là mất hết rồi buồn quá). Và các đọan lọc ra là các đoạn xanh xanh?

3. Tôi biết là khó chọn 2 mầu y hệt trong Excel và Word nên đã định đề nghị bạn cấu trúc hơi khác trong tập tin Excel. Tức:

A. Tập tin Excel ở thời điểm ban đầu không có tiêu đề mầu nào cả. Nhưng trong cell A1 sẽ nhập tên ô đầu tiên của tiêu đề đầu tiên. Tại sao không là "tiêu đề" mà lại "tiêu đề đầu tiên"? Đọc tiếp
Vd. Nếu A1 có giá trị là B4 thì có nghĩa là "tiêu đề mầu" đầu tiên sẽ bắt đầu từ ô B4 (cột A bạn sẽ dùng làm gì đó. Tôi thấy trong tập tin cũ bạn có "Tên files").

B. Mỗi tập tin Word sẽ có 1 "tiêu đề mầu". Như thế các tập tin Word có thể dùng các mầu khác nhau, và có các cặp (gì gì đó và gì gi đó) khác nhau

C. Code sẽ tự đọc hết các mầu và các cặp (gì gì đó và gì gi đó) trong tập tin hiện hành và sẽ tự tô mầu cho "tiêu đề mầu" hiện hành trong Excel. Và dưới dòng "tiêu đề mầu" hiện hành sẽ là các đoạn lọc ra từ tập tin Word hiện hành.

Tóm lại:
a. giá trị A1 xác định vị trí "tiêu đề" đầu tiên
b. code sẽ tự tô mầu hoặc nhập text trong "tiêu đề" bên Excel.
c. dưới tiêu đề hiện hành là text của tập tin hiện hành. Mỗi tập tin có 1 tiêu đề của mình.
d. mỗi tiêu đề, trừ tiêu đề đầu tiên, sẽ được định vị ở dòng sau dòng text của tập tin trước đó.

4. Bạn đã tô mầu trong word như thế nào? Shading hay như tôi nói là dùng "Text Highlight Color"? Vì tôi đọc và hiểu la trong 2 tập tin mới bạn dùng "Text Highlight Color" (có tổng cộng 15 khả năng mầu)
 
Chào bạn Siwtom,

Trả lời các câu hỏi của bạn như sau:

1. Ý tưởng của mình trong 2 tập tin word là ví dụ ở bước đơn giản đầu tiên để bạn hiểu bài toán, đúng là bạn đã lường trước được các ý tưởng có thể sẽ xảy ra như bạn đã phân tích, cụ thể có hai cách tạo “từ khóa” để lấy được thông tin từ word sang excel tùy theo cách định nghĩa của từng người sử dụng khác nhau:

- “Từ khóa” sử dụng màu (Từ khóa màu): code sẽ tổng hợp các màu xuất hiện trong word để liệt kê thành các cột tiêu đề màu tương ứng trong excel (Như vậy khi mình chọn có màu vàng 100% hay vàng lơ lớ 99% thì sẽ được đưa vào hai cột màu tiêu đề tương ứng là vàng 100% và vàng 99%).

- “Từ khóa” được định nghĩa bởi người sử dụng (Từ khóa text): sẽ được định nghĩa cụ thể ở trong excel sheet “Tags”. Như trong tập tin ketquarev.xls thì từ khóa đó ở cột L3, M3, ... (sheet Tags). Từ khóa này sẽ được lấy ra để tìm trong nội dung văn bản word những đoạn text nằm giữa các cặp từ khóa được định nghĩa ở cột L3, M3, .....

2. Đúng rồi Siwtom, các ti1, ti2 là các “Từ khóa text” chỉ tìm trong nội dung văn bản chứ không tìm trong comments. Kết quả tìm kiếm là các đoạn text nằm giữa cặp ti1, ti2 (hay các “Từ khóa màu” khác).

Kết quả mong muốn đúng như bạn phân tích, như sau: -->
Tức trong văn bản chỗ này có thể có (he he he Trúng lô đề rồi he he he), chỗ khác có (buồn quá Thế là mất hết rồi buồn quá). Và các đọan lọc ra là các đoạn xanh xanh?

3. Việc điều chỉnh cấu truc tập tin excel là hoàn toàn bạn tự quyết định cho phù hợp với code để đơn giản và nhanh nhất.
Mình thấy phân tích hoạt động của bạn tại A.B và C là hoàn toàn trùng với ý tưởng bài toán. Bạn cứ tiến hành thế nhé, :-=.

(và code cứ tự chạy như vậy cho nhiều file word khác nhau và lọc các các mầu (Từ khóa màu) và các cặp (Từ khóa text) rồi đưa các kết quả đó vào một file ketquarev.xls theo các dòng kế tiếp trong excel).

4. Mình tô màu trong tập tin word dung “Text Highlight Color” và kết quả là 15 đúng như code bạn tìm ra.

Cám ơn Siwtom nhiều nhé.
Khoi
 
Lần chỉnh sửa cuối:
Chào bạn Siwtom,

Trả lời các câu hỏi của bạn như sau:

1. Ý tưởng của mình trong 2 tập tin word là ví dụ ở bước đơn giản đầu tiên để bạn hiểu bài toán, đúng là bạn đã lường trước được các ý tưởng có thể sẽ xảy ra như bạn đã phân tích, cụ thể có hai cách tạo “từ khóa” để lấy được thông tin từ word sang excel tùy theo cách định nghĩa của từng người sử dụng khác nhau:

- “Từ khóa” sử dụng màu (Từ khóa màu): code sẽ tổng hợp các màu xuất hiện trong word để liệt kê thành các cột tiêu đề màu tương ứng trong excel (Như vậy khi mình chọn có màu vàng 100% hay vàng lơ lớ 99% thì sẽ được đưa vào hai cột màu tiêu đề tương ứng là vàng 100% và vàng 99%).

- “Từ khóa” được định nghĩa bởi người sử dụng (Từ khóa text): sẽ được định nghĩa cụ thể ở trong excel sheet “Tags”. Như trong tập tin ketquarev.xls thì từ khóa đó ở cột L3, M3, ... (sheet Tags). Từ khóa này sẽ được lấy ra để tìm trong nội dung văn bản word những đoạn text nằm giữa các cặp từ khóa được định nghĩa ở cột L3, M3, .....

2. Đúng rồi Siwtom, các ti1, ti2 là các “Từ khóa text” chỉ tìm trong nội dung văn bản chứ không tìm trong comments. Kết quả tìm kiếm là các đoạn text nằm giữa cặp ti1, ti2 (hay các “Từ khóa màu” khác).

Kết quả mong muốn đúng như bạn phân tích, như sau: -->


3. Việc điều chỉnh cấu truc tập tin excel là hoàn toàn bạn tự quyết định cho phù hợp với code để đơn giản và nhanh nhất.
Mình thấy phân tích hoạt động của bạn tại A.B và C là hoàn toàn trùng với ý tưởng bài toán. Bạn cứ tiến hành thế nhé, :-=.

(và code cứ tự chạy như vậy cho nhiều file word khác nhau và lọc các các mầu (Từ khóa màu) và các cặp (Từ khóa text) rồi đưa các kết quả đó vào một file ketquarev.xls theo các dòng kế tiếp trong excel).

4. Mình tô màu trong tập tin word dung “Text Highlight Color” và kết quả là 15 đúng như code bạn tìm ra.

Cám ơn Siwtom nhiều nhé.
Khoi

Tôi đợi lâu quá nên cứ bắt đầu viết với một số giả thiết. Bây giờ đọc bài của bạn thấy hơi khác nhưng không muốn sửa. Tôi gửi bạn xem, nếu cần sửa thì sửa sau.

Tôi không muốn sửa gì? Vấn đề là tôi không để ý tới sheet Tags vì sau dòng "Định nghĩa Tags" có thấy gì đâu?

Các giả thiết:

1. A1 trong sheet Data chứa tên ô đầu tiên của dòng tiêu đề đầu tiên. Hiện tôi đặt là B3.
2. Mỗi tập tin DOC có 1 dòng tiêu đề.
3. Không cần, không được định nghĩa mầu và tag trong tập tin Excel. Code sẽ tự tìm ra các đoạn Highlight, và các đoạn nằm trong "cặp ngoặc" (xyz và xyz) với xyz là một đoạn text bất kỳ.
4. Bạn chỉ được chọn 15 mầu "kia".
5. Nếu các tiêu đề bắt đầu từ cột k, với k >= 1, thì Tên file sẽ được code nhập vào cột (k - 1). Vậy dòng tiêu đề phải bắt đầu từ cột B trở đi.
6, code đặt trong tập tin word1rev.doc.
7. Thao tác: bạn có thể mở tất cả các tập tin cùng lúc hoặc từng tập tin. Riêng word1rev lúc nào cũng có. Với mỗi tập tin bạn chọn nó (activate) rồi Alt + F11 để vào VBE, rồi chạy sub TextHighlightToExcel
 

File đính kèm

  • word2rev.rar
    55.3 KB · Đọc: 77
Cám ơn bạn Siwtom,

Mình đang xem nó hoạt động ntn. Code trong word1rev.doc nhưng làm thế nào để xuất kết quả trong word2rev.doc.
Bạn có thể mô tả kỹ hơn bước này không?

7. Thao tác: bạn có thể mở tất cả các tập tin cùng lúc hoặc từng tập tin. Riêng word1rev lúc nào cũng có. Với mỗi tập tin bạn chọn nó (activate) rồi Alt + F11 để vào VBE, rồi chạy sub TextHighlightToExcel

Cám ơn bạn
Khoi
 
Cám ơn bạn Siwtom,

Mình đang xem nó hoạt động ntn. Code trong word1rev.doc nhưng làm thế nào để xuất kết quả trong word2rev.doc.
Bạn có thể mô tả kỹ hơn bước này không?



Cám ơn bạn
Khoi

Tôi viết rõ ràng mà
Với mỗi tập tin bạn chọn nó

Giả sử bạn có 3 tập tin: word1rev, word2rev, word3rev

1. Bạn mở liền 3 tập tin: word1rev, word2rev, word3rev
a. Chọn word1rev --> Alt + F11 --> chạy sub TextHighlightToExcel (dữ liệu word1rev sẽ được bắn vào Excel)

b. Quay lại chọn word2rev --> Alt + F11 --> chạy sub TextHighlightToExcel (dữ liệu word2rev sẽ được bắn vào Excel)

c. Quay lại chọn word3rev --> Alt + F11 --> chạy sub TextHighlightToExcel (dữ liệu word3rev sẽ được bắn vào Excel)

2. Bạn chỉ mở tập tin: word1rev

a. Chọn word1rev --> Alt + F11 --> chạy sub TextHighlightToExcel (dữ liệu word1rev sẽ được bắn vào Excel)

b. Mở tiếp và chọn word2rev --> Alt + F11 --> chạy sub TextHighlightToExcel (dữ liệu word2rev sẽ được bắn vào Excel)

c. Mở tiếp và chọn word3rev --> Alt + F11 --> chạy sub TextHighlightToExcel (dữ liệu word3rev sẽ được bắn vào Excel)

d. Trước khi mở tiếp tập tin mới bạn có thể đóng các tập tin trước. Riêng tập tin word1rev luôn mở vì nó chứa code
 
Hì, mình làm được rồi, cám ơn bạn nhé,

Kết quả tìm kiếm đúng như xuất hiện tại tập tin words, chỉ có mỗi điều là các cột tiêu đề màu bị lặp lại ở từng dòng. Như mình mô tả ở #1 (file ketqua.xls) thì cột tiêu đề màu nên chỉ xuất hiện một lần ở trên dòng 4 còn các kết quả sẽ căn cứ vào màu tiêu đề trên dòng 4 để đặt vào tương ứng, Trường hợp có tập tin xuất hiện thêm màu mới sẽ đặt thêm vào cột tại dòng 4.

(Trong file excel có phần tên file ở cột A nên xuống 1 dòng để cho cùng dòng với các text kết quả tìm thấy trong file đó).

Bạn xem filé đính kèm để hiểu hơn nhé.

Thanks bạn
Khoi
 

File đính kèm

  • word1rev.doc
    90 KB · Đọc: 33
  • word2rev.doc
    73 KB · Đọc: 28
  • ketquarev.xlsx
    10.9 KB · Đọc: 37
Lần chỉnh sửa cuối:
Tiếp theo phần trên #7 và #14. Như bạn có ý tưởng nếu

À, thế nếu trong Word có nhiều đoạn cùng có mầu đỏ thì các đoạn đó nhập vào Excel trong những dòng liên tiếp của cột mầu đỏ?

thì bạn chỉnh lại code như thế nào nhỉ để hoạt động được.

Thanks
Khoi
 
Hì, mình làm được rồi, cám ơn bạn nhé,

Kết quả tìm kiếm đúng như xuất hiện tại tập tin words, chỉ có mỗi điều là các cột tiêu đề màu bị lặp lại ở từng dòng. Như mình mô tả ở #1 (file ketqua.xls) thì cột tiêu đề màu nên chỉ xuất hiện một lần ở trên dòng 4 còn các kết quả sẽ căn cứ vào màu tiêu đề trên dòng 4 để đặt vào tương ứng, Trường hợp có tập tin xuất hiện thêm màu mới sẽ đặt thêm vào cột tại dòng 4.

(Trong file excel có phần tên file ở cột A nên xuống 1 dòng để cho cùng dòng với các text kết quả tìm thấy trong file đó).

Bạn xem filé đính kèm để hiểu hơn nhé.

Thanks bạn
Khoi

Bạn ạ, tôi không phải đọc gì để hiểu cả.

Tôi đã nói rất rõ trong bài #9

Trích

1. Hiện tại bạn cho 2 tập tin dùng chung 1 "tiêu đề mầu". Bạn có chắc là trong tương lai các tập tin mới cũng có đúng các mầu đó và cũng đúng các ti1, ti2 đó? Hay sẽ có thêm các mầu khác? Hoặc vd. thêm ti3, ti4, thậm chí hehe1, hichic2, tenten5. Hoặc sau một thời gian khi tô mầu cho tập tin mới thì bạn chọn không đúng so với mầu đã dùng trong Excel vd. mầu vàng đã dùng - thay cho vàng 100% thì chọn vàng "lơ lớ", tức vàng 99%?

3. Tôi biết là khó chọn 2 mầu y hệt trong Excel và Word nên đã định đề nghị bạn cấu trúc hơi khác trong tập tin Excel. Tức:

A. Tập tin Excel ở thời điểm ban đầu không có tiêu đề mầu nào cả. Nhưng trong cell A1 sẽ nhập tên ô đầu tiên của tiêu đề đầu tiên. Tại sao không là "tiêu đề" mà lại "tiêu đề đầu tiên"? Đọc tiếp

B. Mỗi tập tin Word sẽ có 1 "tiêu đề mầu". Như thế các tập tin Word có thể dùng các mầu khác nhau, và có các cặp (gì gì đó và gì gi đó) khác nhau

C. Code sẽ tự đọc hết các mầu và các cặp (gì gì đó và gì gi đó) trong tập tin hiện hành và sẽ tự tô mầu cho "tiêu đề mầu" hiện hành trong Excel. Và dưới dòng "tiêu đề mầu" hiện hành sẽ là các đoạn lọc ra từ tập tin Word hiện hành.

Tóm lại:
a. giá trị A1 xác định vị trí "tiêu đề" đầu tiên
b. code sẽ tự tô mầu hoặc nhập text trong "tiêu đề" bên Excel.
c. dưới tiêu đề hiện hành là text của tập tin hiện hành. Mỗi tập tin có 1 tiêu đề của mình.

Nếu bạn không đồng ý với đỏ đỏ thì sao bạn không phản đối rõ ràng ngay ở bài #10???

Tôi không thích viết đi viết lại, thay đổi yêu cầu.

Tôi sẽ chỉ giúp bạn một lần nữa. Code có lỗi thì tôi sẽ sửa nhưng không có chuyện thay đổi yêu cầu. Vậy bạn hãy nghĩ kỹ.

Tôi định:
1. Ô A1 chứa tên ô đầu tiên của dòng tiêu đề. Tiêu đề chỉ có 1
2. Không định nghĩa mầu ở Excel và không định nghĩa tags ở Excel
3. Với tập tin word1 đầu tiên thì tiêu đề sẽ được tạo với các mầu có trong word1 và tags có trong word1. Với mỗi tập tin tiếp theo nếu có chứa mầu hay tags mà chưa có trong tiêu đề thì code sẽ tự thêm mầu đó hoặc tag đó vào tiêu đề.

Bạn hãy đọc kỹ 3 điểm trên và nếu cần sửa hoặc thêm thì nói rõ ra. Về điểm 2 tôi giải thích thêm. Tôi quyết định thế vì để bạn xác định mầu ở 2 chỗ (word, excel) thì chưa chắc chúng như nhau. Về tag tương tự vì chỉ cần gõ nhầm trong word hoặc excel thì 2 tag sẽ không như nhau.

Tôi sẽ chỉ làm một lần nữa nên bạn hãy suy nghĩ kỹ.
 
Hì, mình làm được rồi, cám ơn bạn nhé,

Kết quả tìm kiếm đúng như xuất hiện tại tập tin words, chỉ có mỗi điều là các cột tiêu đề màu bị lặp lại ở từng dòng. Như mình mô tả ở #1 (file ketqua.xls) thì cột tiêu đề màu nên chỉ xuất hiện một lần ở trên dòng 4 còn các kết quả sẽ căn cứ vào màu tiêu đề trên dòng 4 để đặt vào tương ứng, Trường hợp có tập tin xuất hiện thêm màu mới sẽ đặt thêm vào cột tại dòng 4.

(Trong file excel có phần tên file ở cột A nên xuống 1 dòng để cho cùng dòng với các text kết quả tìm thấy trong file đó).

Bạn xem filé đính kèm để hiểu hơn nhé.

Thanks bạn
Khoi

Trong tập tin cũ tôi không xuống 1 dòng vì mỗi tập tin có dòng tiêu đề của mình và dòng dữ liệu của mình (tổng cộng 2 dòng) nên để tên tập tin ở dòng nào trong 2 dòng cũng được.

Nếu bạn muốn cho tôi cơ hội để test code cho tình huống đỏ đỏ và tình huống khi tập tin mới có thêm tag mà chưa có trong tiêu đề (lúc đó sẽ thêm cột cho tag mới trong tiêu đề???????) thì bạn phải sửa lại tập tin word2rev.doc đính kèm và thêm mầu và tag mới so với word1rev.doc. Chả nhẽ tự tôi phải tạo thêm dữ liệu để test? Nguyên tắc là vấn đề của bạn thì bạn phải làm tất cả những gì tự bạn có thể làm được. Mục đích là tiết kiệm max thời gian cho người giúp mình.
 
Trước tiên mình thành thật xin lỗi bạn nhé, vì mình nhờ bạn giúp mà không có mục đích rõ ràng nên hay thay đổi và đọc không kỹ từng từ bạn viết cho mình nên như vậy. Mình xin lỗi nhé.

Trả lời bài #17:

thì bạn phải sửa lại tập tin word2rev.doc đính kèm và thêm mầu và tag mới so với word1rev.doc.

Mình đã sửa rồi bạn ạ tại file word2rev.doc thôi bạn ạ (download tại #14), cụ thể:

Thêm màu tím vào text CP3 và bỏ đi text: NSJV-CP2-2013-2345

Trả lời bài #16:

Tôi định:
1. Ô A1 chứa tên ô đầu tiên của dòng tiêu đề. Tiêu đề chỉ có 1
2. Không định nghĩa mầu ở Excel và không định nghĩa tags ở Excel
3. Với tập tin word1 đầu tiên thì tiêu đề sẽ được tạo với các mầu có trong word1 và tags có trong word1. Với mỗi tập tin tiếp theo nếu có chứa mầu hay tags mà chưa có trong tiêu đề thì code sẽ tự thêm mầu đó hoặc tag đó vào tiêu đề.

Bạn hãy đọc kỹ 3 điểm trên và nếu cần sửa hoặc thêm thì nói rõ ra. Về điểm 2 tôi giải thích thêm. Tôi quyết định thế vì để bạn xác định mầu ở 2 chỗ (word, excel) thì chưa chắc chúng như nhau. Về tag tương tự vì chỉ cần gõ nhầm trong word hoặc excel thì 2 tag sẽ không như nhau.

Tôi sẽ chỉ làm một lần nữa nên bạn hãy suy nghĩ kỹ.

Mình đồng ý với cả 3 điểm bạn nêu trên cũng như hiện nay code của bạn đang hoạt động tốt như vậy.

Xin bạn cho ý tưởng tại đề xuất bài #15.

Thành thật xin lỗi đã làm phiền bạn,
Khoi
 
Trước tiên mình thành thật xin lỗi bạn nhé, vì mình nhờ bạn giúp mà không có mục đích rõ ràng nên hay thay đổi và đọc không kỹ từng từ bạn viết cho mình nên như vậy. Mình xin lỗi nhé.

Trả lời bài #17:



Mình đã sửa rồi bạn ạ tại file word2rev.doc thôi bạn ạ (download tại #14), cụ thể:

Thêm màu tím vào text CP3 và bỏ đi text: NSJV-CP2-2013-2345

Trả lời bài #16:



Mình đồng ý với cả 3 điểm bạn nêu trên cũng như hiện nay code của bạn đang hoạt động tốt như vậy.

Xin bạn cho ý tưởng tại đề xuất bài #15.

Thành thật xin lỗi đã làm phiền bạn,
Khoi

Chú ý:

1. Phải và chỉ chọn 1 trong 15 mầu ở "Text Highlight Color"

2. trong mỗi tập tin word số chuỗi có cùng mầu < 1000. Vd. có 2 mầu đỏ và vàng thì số chuỗi có mầu vàng < 1000, và số chuỗi có mầu đỏ < 1000. Nếu cần số lớn hơn thì trong code thay 1000 bằng số lớn hơn. Nếu chắc chắn số chuỗi trong mỗi mầu < a (vd. a = 1000) thì thay trong code 1000 bằng a.
 

File đính kèm

  • ketquarev.rar
    60.6 KB · Đọc: 85
Oa, tuyệt vời, bài toán đã hoàn toàn được giải quyết. Cám ơn bạn nhiều nhé. :)
Vui quá, thanks Siwtom, bạn giỏi thật đấy.
:)
Khoi
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom