Xuất dữ liệu Excel sang Word

  • Thread starter Thread starter anh2009
  • Ngày gửi Ngày gửi
Liên hệ QC

anh2009

Thành viên mới
Tham gia
19/1/09
Bài viết
7
Được thích
8
Mình có viết 1 macro để xuất dữ liệu từ Excel sang Word. Macro đã xuất được dữ liệu từ Excel sang Word, nhưng các hàng khi xuất sang Word lộn xộn không đều nhau. Xin cac bạn chỉ giúp mình cách làm cho các hàng đều nhau như định dạng trong File "go bang tay" mà mình đính kèm. Cảm ơn
 

File đính kèm

Theo tui thì cần đặt Tab cho file word để canh chỉnh thẳng hàng. Thêm 2 lệnh sau:

1. Nối thêm ký tự Tab (vbTab) trước khi xuất số

Ví dụ: xuat_word = xuat_word & " + " & tenvattu & myCell & " " & vbTab & Cells(hang, cot) & Chr(10)

2. Đặt Tab trước khi xuất dữ liệu ra word

Ví dụ:

wordObj.Selection.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(13), _
Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces

Kiểm tra lại CentimetersToPoints(13) để thay đổi vị trí cho phú hợp
 
Upvote 0
Cảm ơn bạn Sutysw, mình đã làm được rồi. Cho mình hỏi thêm cái này nữa với:
Làm cách nào để khi xử lý xuất qua Word, bỏ qua được các cột, dòng đã ẩn(hide).
Mình cảm ơn.
 
Upvote 0
Sao không kẻ luôn bảng trong word rồi xuất sang cho đẹp
Dể bỏ qua cột ẩn ta kiểm tra Columns(Index).Hidden, nếu = true thì bỏ qua
 
Upvote 0
Xin các bạn cho mình hỏi thêm làm sao để tạo 1 biểu tượng trên thanh ToolBar, khi cần thực hiện chương trình chỉ nhấn nút này, và tạo ra Add-ins cho các máy khac dùng. Mình xin cảm ơn.
 
Upvote 0
Tạo Add-Ins thì bạn lưu file đó thành đuôi .xla rồi sử dụng cho nhiều máy.
Đối với word thì có thể tạo file dạng .dot (template) còn nếu muốn dùng Add-Ins cho word thì phải tạo thành file .wll nhưng cái này thì tôi chưa biết làm, đang mò mẫm mãi mà chưa thấy chỗ nào hướng dẫn.
 
Upvote 0
Ý mình muốn hỏi làm sao để tạo 1 biểu tượng trên thanh ToolBar, khi cần thực hiện chương trình chỉ nhấn nút này, và khi tạo ra File .XLA cho các máy khác dùng thì cũng có biểu tượng này. Mình xin cảm ơn.
 
Upvote 0
Bạn đưa đoạn mã sau vào trong 1 Module nhé
PHP:
Private Sub Auto_Open()
    Application.CommandBars.Add(Name:="Tên ToolsBar").Visible = True
    With Application.CommandBars("Tên ToolsBar").Controls.Add(Type:=msoControlButton, Before:=2)
        .Caption = "Tên nút"
        .OnAction = "Tên_hàm"
        .FaceId = 357 'Số hiệu ID của hình ảnh muốn đưa vào nút bấm
        .BeginGroup = True 'True or False, mặc định là False
    End With
End Sub
 
Upvote 0
Excel có thể đọc được nhiều dạng file khác nhau, trong đó có dạng file text-only (văn bản thô). Khi bạn chọn menu File.Open để mở 1 file text-only thì Excel sẽ hiển thị tuần tự 3 cửa sổ yêu cầu bạn khai báo kiểu dữ liệu (bạn chọn checkbox 'Delimited'), dấu ngăn cách các field dữ liệu (bạn có thể chọn dấu tab, dấu phẩy, dấu chấm phẩy, khoảng trống hay nhập vào ký tự dấu ngăn nào bạn muốn). Nếu bạn khai báo dấu ngăn phù hợp với ký tự mà bạn dùng để ngăn cách các field dữ liệu trong file văn bản của mình thì Excel sẽ đọc và chứa vào các cột đúng theo ý muốn.
Tóm lại nếu bạn muốn chuyển dữ liệu từ Word sang Excel và muốn giữ đúng các cột dữ liệu, bạn hãy ngăn các cột dữ liệu bằng 1 ký tự đặc biệt nào đó sao cho không tranh chấp và nhầm lẫn với dữ liệu (ký tự tab là phù hợp nhất trong đại đa số trường hợp). Nếu đã lỡ dùng 2 khoảng trắng để ngăn cách các cột dữ liệu, bạn có thể thay thế chúng bằng ký tự dấu ngăn phù hợp hơn (bằng cách chọn menu Edit.Replace, nhập 2 khoảng trắng vào mục 'Find what' và ký tự dấu ngăn vào mục 'Replace with' rồi ấn button 'Replace All'). Lưu ý rằng nếu chọn dấu ngăn là ký tự điều khiển (thí dụ ký tự tab), bạn không nhập trực tiếp được ký tự điều khiển này mà phải chọn button More.Special.Tab Character. Sau khi đã chuẩn bị đúng format cần thiết cho Excel, bạn dùng chức năng File.Save As để lưu kết quả lên file (chọn kiểu file lưu là 'Plain text (*.txt)'. Sau đó chạy Excel, dùng menu File.Open để đọc file, lúc này Excel sẽ hiển thị tuần tự 3 cửa sổ yêu cầu bạn khai báo tính chất của file để nó xử lý đúng.
Trong trường hợp bạn muốn copy dữ liệu dạng nhiều cột từ Word rồi dán trực tiếp vào bảng tính Excel, bạn phải dùng dấu ngăn là tab vì Excel coi tab là dấu ngăn cách mặc định.
 
Upvote 0
Web KT

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

Back
Top Bottom