Hỏi về trộn dữ liệu từ excel sang word có chứa bảng tab

Liên hệ QC

soap1234

Thành viên hoạt động
Tham gia
22/10/13
Bài viết
162
Được thích
6
Chào các anh chị em muốn nhờ anh chị diễn đàn sửa em code trong file sau. Hai code này em xin phép lấy từ anh maika ạ.
Em muốn khi trộn sang word những dòng nào trống hoặc không có dữ liệu trong bảng TAB thì tự động xóa dòng đó đi. thường thì khi điền xong em lại phải xóa thủ công trong bảng này anh chị ạ. em xin chân thành cảm ơn
 

File đính kèm

  • xoadongtrong.jpg
    xoadongtrong.jpg
    86.7 KB · Đọc: 37
  • Mau.docx
    47 KB · Đọc: 12
  • MauChay.xlsm
    36.3 KB · Đọc: 9
Chào các anh chị em muốn nhờ anh chị diễn đàn sửa em code trong file sau. Hai code này em xin phép lấy từ anh maika ạ.
Em muốn khi trộn sang word những dòng nào trống hoặc không có dữ liệu trong bảng TAB thì tự động xóa dòng đó đi. thường thì khi điền xong em lại phải xóa thủ công trong bảng này anh chị ạ. em xin chân thành cảm ơn
Cách tôi làm là trong file Word chỉ thiết kế table với 1 dòng, 1 cột thôi, khi đổ dữ liệu từ excel sang lúc đó mới tự động thêm dòng, cột , tên cột v.v... Bạn tự ngâm cứu nhé :D .
 
Upvote 1
Anh có code nào hay file ví dụ nào không cho e xin với em đang mắc chỗ này mặc dù đã dùng file của anh ongke0711
 
Upvote 0
Chào các anh chị em muốn nhờ anh chị diễn đàn sửa em code trong file sau. Hai code này em xin phép lấy từ anh maika ạ.
Em muốn khi trộn sang word những dòng nào trống hoặc không có dữ liệu trong bảng TAB thì tự động xóa dòng đó đi. thường thì khi điền xong em lại phải xóa thủ công trong bảng này anh chị ạ. em xin chân thành cảm ơn
Với file Mẫu (File Word) của bạn thì không thể thực hiện được, vì trong Table bạn có ô Đơn giá (Cột 5) chiếm 2 hàng, mà code xóa hàng trong bảng sẽ không thực hiện được nếu có ghép ô hoặc chia ô (Có lẽ tui chưa đủ trình độ để vượt qua cái ngưỡng này). Nếu bảng trong file Word của bạn sửa lại thì sẽ đáp ứng được yêu cầu trên.
 
Upvote 0
Dạ. Nhờ anh sửa file word em với làm sao chạy được là mừng lắm rồi anh ạ. Em xin cảm ơn anh nhiều
 
Upvote 0
Dạ anh. Đêm nay em test anh ạ. Em cảm ơn anh nhiều lắm anh à. Có gì vướng mắc ở đâu e hỏi anh nhé
 
Upvote 0
Em xin chân thành cảm anh chị đặc biệt anh giaiphap xin hỏi anh đoạn sau code này hiểu nôm na thế nào anh nhỉ đặc biệt số 13 anh à
j = 0
Set tb = wDoc.Tables.Item(1)
For Each r In tb.Rows
If AscW(r.Cells(2).Range.Text) = 13 Then
r.Delete
Else
If Left(r.Cells(1).Range.Text, 2) <> "TT" Then
j = j + 1
r.Cells(1).Range.Text = j
End If
End If
Next r
Bài đã được tự động gộp:

Cảm ơn anh ongke0711 đã góp ý thiết kế file Excel với các nội dung dòng chuyển thành cột, dàn hàng ngang. nhưng thật sự em không nghĩ ra phương án nào tối ưu anh à . Mong anh có chi sẽ cách làm em với.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh ongke0711 đã góp ý thiết kế file Excel với các nội dung dòng chuyển thành cột, dàn hàng ngang. nhưng thật sự em không nghĩ ra phương án nào tối ưu anh à . Mong anh có chi sẽ cách làm em với.
Tôi nghĩ bạn không nên đi theo cách xử lý trộn file kiểu này, nó không hiệu quả và thực tế gì cả.
Các công cụ trộng file trên đây chỉ giải quyết tốt một số trường hợp chung chung, thông dụng. Còn đối với định dạng file Word của bạn, dạng có chèn table, tính toán v.v.. thì nó là đặc thù rồi, không thể ép nó, ép thiết kế CSDL để có thể xài được các cái tool trộn file chung được.
Bạn giải quyết được vụ trộn file nhưng mất thời gian và có khi không khả thi cho khâu xây dựng bảng dữ liệu Excel để đáp ứng nó, mất thời gian hơn nữa.
Đối với tôi thì tôi luôn thiết kế code trộn riêng cho từng dạng file Word đặc thù (Nói là riêng chứ thực ra là tái sử dụng các hàm và tùy biến cho từng file thôi).
Ví dụ như cái file Hợp đồng dưới đây:
- Số hạng mục rất nhiều, cả 300 hạng mục, chẳng lẻ bạn phải thiết kế file Excel dàn hàng ngang 300 cột?
- Mỗi khách hàng sẽ có số hạng mục khác nhau. --> bạn thiết kế bảng Excel như thế nào?
- Thêm có mục tính VAT, Tổng, Chiết khấu ....
=> Tôi code riêng cho mẫu hợp đồng này. Trong cty, số lượng mẫu file Word đặc thù không nhiều thì việc thiết kế riêng là không thành vấn đề.

------------------------------------------------------------------------------
Screen Shot 2022-07-16 at 09.08.16.png

Có thể xây dựng một cái công cụ trộn dùng chung có thể chèn Excel vào Word Table nhưng lại không thể đưa tùy biến thêm các dòng tổng, tính toán... vào được (mặc dùng code được nhưng sẽ lằng nhằng khi người dùng thao tác) --> nó trở thành như là một thiết kế riêng rồi.
Vài ý kiến cá nhân là vậy.
 
Upvote 0
Dạ anh à. Anh có thể cho em cái file tham khảo được không chứ dạng file Word mà có chèn table, tính toán là rối lắm anh à không biết xử lý thế nào luôn
 
Upvote 0
Anh giaiphap ơi nhờ anh xem sửa dùm code sao cho chạy được mẫu này được em với
 

File đính kèm

  • MauSua.docx
    47.3 KB · Đọc: 5
Lần chỉnh sửa cuối:
Upvote 0
Dạ anh à. Anh có thể cho em cái file tham khảo được không chứ dạng file Word mà có chèn table, tính toán là rối lắm anh à không biết xử lý thế nào luôn
Bạn có file dữ liệu excel gốc, lưu thông tin để trộn (chưa qua xử lý như cái file đính kèm của bạn ở bài #1) không, up lên tôi làm mẫu.
 
Upvote 0
Em gửi anh File hàng ngày phải nhập và xuất báo cáo như file word anh à
 

File đính kèm

  • FileGoc.xlsm
    31.6 KB · Đọc: 9
  • FileGoc.docx
    46.4 KB · Đọc: 4
Upvote 0
Em gửi anh File hàng ngày phải nhập và xuất báo cáo như file word anh à
File Excel này của bạn phải hiểu như thế nào?

Screen Shot 2022-07-16 at 17.32.36.png

Ví dụ: Hợp đồng số 1
- Cùng 1 số hợp đồng (HĐ) như có 3 giá trị HĐ?
- Cùng một HĐ nhưng sẽ có 3 phạm vi đo để đưa vào file Word? --> Giá trị HĐ sẽ lấy cái nào?
 
Upvote 0
Dạ Đưa vào bảng tab thì từ cột [Pham Vi do] và lấy cả 3 giá trị đó anh à
 
Upvote 0
Anh ơi code anh gửi lại cho em thấy khi file mẫu không có bảng TAB thì báo lỗi anh à. Nhờ Khắc phục làm sao mà File mẫu không có bảng TAB và có bảng TAB vẫn chạy được anh. em xin cảm ơn anh
 

File đính kèm

  • loi khong co bang tab.jpg
    loi khong co bang tab.jpg
    83.5 KB · Đọc: 12
Upvote 0
Anh ơi code anh gửi lại cho em thấy khi file mẫu không có bảng TAB thì báo lỗi anh à. Nhờ Khắc phục làm sao mà File mẫu không có bảng TAB và có bảng TAB vẫn chạy được anh. em xin cảm ơn anh
Code này bác giaiphap xử lý dã chiến cho bạn thôi chứ như tôi đã nói mẫu Word đặc thù thì không dùng công cụ Merge với các tính năng cơ bản chung chung được.
Tôi cũng đã có trường hợp Merge với file Word có trên 2 table thì code trên cũng không xử lý được mà phải viết riêng cho đúng một mẫu đó thôi (vd: Mẫu Sơ Yếu Lý Lịch...). Chắc chắn mẫu Word nhiều table rất nhiều.
Trên mạng cũng có tool nước ngoài hỗ trợ trộn nhiều Table vào file Word dùng chung nhưng không có miễn phí nhé bạn. Code thì viết đươc đó nhưng sẽ tốn công và chất xám nữa.
 
Upvote 0
Anh ơi code anh gửi lại cho em thấy khi file mẫu không có bảng TAB thì báo lỗi anh à. Nhờ Khắc phục làm sao mà File mẫu không có bảng TAB và có bảng TAB vẫn chạy được anh. em xin cảm ơn anh
Đúng như @ongke0711 đã nói code trên chỉ áp dụng cho file mẫu của bạn thôi, còn file khác thì sẽ có cách khác. Để khắc phục thì mình kiểm tra trước Table có hay không, bằng cách code đoạn code đó vào cái IF là xong.
Mã:
If wDoc.Tables.Count > 0 Then
   j = 0
   Set tb = wDoc.Tables.Item(1)
   For Each r In tb.Rows
      If AscW(r.Cells(2).Range.Text) = 13 Then
         r.Delete
      Else
         If Left(r.Cells(1).Range.Text, 2) <> "TT" Then
             j = j + 1
             r.Cells(1).Range.Text = j
         End If
      End If
   Next r
End If
Sẳn nói thêm chổ Set tb = wDoc.Tables.Item(1) là áp dụng cho Table đầu tiên trong file mẫu của bạn, trong trường hợp file mẫu của bạn có hơn 1 Table thì thay số 1 ứng với số thứ tự Table trong file word của bạn, việc còn lại là ứng biết code theo nhu cầu thực tế của mỗi file thôi.
 
Upvote 0
Tôi thấy nếu văn bản ít chữ nhiều table thì nên thiết kế luôn trong Excel rồi dùng công thức và/hoặc VBA để điền dữ liệu cần trộn vào là tiện nhất. Đâu nhất thiết phải làm trong Word!?
 
Upvote 0
Web KT

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

Back
Top Bottom