Copy Dữ liệu từ Excel sang Word

Liên hệ QC

uglyman

Thành viên mới
Tham gia
11/9/12
Bài viết
5
Được thích
2
Em có công việc phải update danh sách từ excel đến 1 vị trí chỉ định trong word
Em dùng thử lệnh goto để đưa con trỏ đến vị trí mong muốn mà toàn báo lỗi.
Nếu bỏ lệnh Goto thì copy sang được nhưng chỉ vào vị trí đầu văn bản.
Em gửi ví dụ đi kèm.
- Các bác chỉ giúp em có cách nào copy DS đến vị trí chỉ định.
- Lần update tiếp theo sẽ xóa DS cũ đã có tại vị trí đó trong word và copy DS mới (lặp lại công việc trên)

Em biết lơ mơ về vba thôi nên các bác chỉ em chi tiết 1 chút nhé. Em cảm ơn nhiều nhiều.

Do danh sách excel của em cũng thường xuyên thay đổi mà em phải cập nhật sang nhiều mẫu word khác nhau nên dùng copy, paste thông thường mất thời gian mà dễ sai sót.
 

File đính kèm

  • Danh sach dai ly.xlsm
    18.1 KB · Đọc: 27
  • Thu ngo.docx
    11.7 KB · Đọc: 27
Em có công việc phải update danh sách từ excel đến 1 vị trí chỉ định trong word
Em dùng thử lệnh goto để đưa con trỏ đến vị trí mong muốn mà toàn báo lỗi.
Nếu bỏ lệnh Goto thì copy sang được nhưng chỉ vào vị trí đầu văn bản.
Em gửi ví dụ đi kèm.
- Các bác chỉ giúp em có cách nào copy DS đến vị trí chỉ định.
- Lần update tiếp theo sẽ xóa DS cũ đã có tại vị trí đó trong word và copy DS mới (lặp lại công việc trên)

Em biết lơ mơ về vba thôi nên các bác chỉ em chi tiết 1 chút nhé. Em cảm ơn nhiều nhiều.

Do danh sách excel của em cũng thường xuyên thay đổi mà em phải cập nhật sang nhiều mẫu word khác nhau nên dùng copy, paste thông thường mất thời gian mà dễ sai sót.
Bạn thử thiết kế dữ liệu file word trên excel rồi đưa dữ liệu qua có dễ hơn không?
 
Upvote 0
Em có công việc phải update danh sách từ excel đến 1 vị trí chỉ định trong word
Em dùng thử lệnh goto để đưa con trỏ đến vị trí mong muốn mà toàn báo lỗi.
Nếu bỏ lệnh Goto thì copy sang được nhưng chỉ vào vị trí đầu văn bản.
Em gửi ví dụ đi kèm.
- Các bác chỉ giúp em có cách nào copy DS đến vị trí chỉ định.
- Lần update tiếp theo sẽ xóa DS cũ đã có tại vị trí đó trong word và copy DS mới (lặp lại công việc trên)

Em biết lơ mơ về vba thôi nên các bác chỉ em chi tiết 1 chút nhé. Em cảm ơn nhiều nhiều.

Do danh sách excel của em cũng thường xuyên thay đổi mà em phải cập nhật sang nhiều mẫu word khác nhau nên dùng copy, paste thông thường mất thời gian mà dễ sai sót.
bạn thử code này nha:
Mã:
Sub Button1_Click()
Dim oWordApp As Object, oDoc As Object

    Range("A3", "D6").Copy

    Set oWordApp = CreateObject("word.application")
    oWordApp.Visible = True
    Set oDoc = oWordApp.Documents.Open(ThisWorkbook.Path & "\Thu ngo.docx")
   
    oWordApp.Selection.GoTo What:=-1, Name:="DSDL"
    oWordApp.Selection.Paste

    oDoc.Save
    oDoc.Close
    oWordApp.Quit
    Set oDoc = Nothing
    Set oWordApp = Nothing
End Sub
 
Upvote 0
bạn thử code này nha:
Mã:
Sub Button1_Click()
Dim oWordApp As Object, oDoc As Object

    Range("A3", "D6").Copy

    Set oWordApp = CreateObject("word.application")
    oWordApp.Visible = True
    Set oDoc = oWordApp.Documents.Open(ThisWorkbook.Path & "\Thu ngo.docx")
  
    oWordApp.Selection.GoTo What:=-1, Name:="DSDL"
    oWordApp.Selection.Paste

    oDoc.Save
    oDoc.Close
    oWordApp.Quit
    Set oDoc = Nothing
    Set oWordApp = Nothing
End Sub
Cho tôi hỏi, đoạn code nào nó xác định được chỗ paste trong word ở chỗ dưới đoạn "DANH SÁCH ĐẠI LÝ" vậy bạn. Xin cảm ơn bạn trước
 
Upvote 0
Cho tôi hỏi, đoạn code nào nó xác định được chỗ paste trong word ở chỗ dưới đoạn "DANH SÁCH ĐẠI LÝ" vậy bạn. Xin cảm ơn bạn trước
trong word có thiết lập bookmark với cái tên là "DSDL" và mình paste vào chỗ đó
oWordApp.Selection.GoTo What:=-1, Name:="DSDL"
 
Upvote 0

Tuyệt vời, cảm ơn bác nhiều lắm.

Bác xem giúp em ý thứ 2 của chương trình cần làm thêm lệnh thế nào với:
- Lần update sau sẽ xóa cái DS cũ trong word và copy DS mới từ excel vào
Phần copy DS mới thì vẫn dùng code này rồi, còn chọn và xóa DS hiện có trong word thì em ko biết làm thế nào.
 
Upvote 0
Tuyệt vời, cảm ơn bác nhiều lắm.

Bác xem giúp em ý thứ 2 của chương trình cần làm thêm lệnh thế nào với:
- Lần update sau sẽ xóa cái DS cũ trong word và copy DS mới từ excel vào
Phần copy DS mới thì vẫn dùng code này rồi, còn chọn và xóa DS hiện có trong word thì em ko biết làm thế nào.
bạn lấy cái này thử:
tôi giả sử trong file word của bạn chỉ có 1 table thôi nhá!!!
Mã:
Sub Button1_Click()
Dim oWordApp As Object, oDoc As Object

    Range("A3", "D6").Copy

    Set oWordApp = CreateObject("word.application")
    oWordApp.Visible = True
    Set oDoc = oWordApp.Documents.Open(ThisWorkbook.Path & "\Thu ngo.docx")
    
    If oDoc.Tables.Count <> 0 Then
        oDoc.Tables(1).Delete
    End If
    
    oWordApp.Selection.GoTo What:=-1, Name:="DSDL"
    oWordApp.Selection.Paste

    oDoc.Save
    oDoc.Close
    oWordApp.Quit
    Set oDoc = Nothing
    Set oWordApp = Nothing
    Application.CutCopyMode = False
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
bạn lấy cái này thử:
tôi giả sử trong file word của bạn chỉ có 1 table thôi nhá!!!

Bác giỏi quá. Cảm ơn bác nhiều.

Do em có nhiều mẫu word cần update cái DS này sang; có mẫu chỉ có 1 bảng này, có mẫu có các bảng khác nên em muốn có cách nào chọn được Bảng đúng vị trí bookmark này để xóa không ảnh hưởng các Bảng khác.

Nếu ko tìm theo bookmark thì có thể chia section rồi count trong section đc không bác nhỉ?
 
Upvote 0
Bác giỏi quá. Cảm ơn bác nhiều.

Do em có nhiều mẫu word cần update cái DS này sang; có mẫu chỉ có 1 bảng này, có mẫu có các bảng khác nên em muốn có cách nào chọn được Bảng đúng vị trí bookmark này để xóa không ảnh hưởng các Bảng khác.

Nếu ko tìm theo bookmark thì có thể chia section rồi count trong section đc không bác nhỉ?
vậy bạn thử kiểm tra cái code này nha: (với file word có nhiều table)
Mã:
Option Explicit

Sub Button1_Click()
Dim oWordApp As Object, oDoc As Object, tbl As Object

    Range("A3", "D6").Copy

    Set oWordApp = CreateObject("word.application")
    oWordApp.Visible = True
    Set oDoc = oWordApp.Documents.Open(ThisWorkbook.Path & "\Thu ngo.docx")
    
    On Error Resume Next
        oDoc.Bookmarks("DSDL_Table").Range.Select
        oDoc.Bookmarks("DSDL_Table").Range.Tables(1).Delete
    On Error GoTo 0
    
    oWordApp.Selection.Goto What:=-1, Name:="DSDL"
    oWordApp.Selection.Paste
    oWordApp.Selection.Tables(1).Range.Bookmarks.Add "DSDL_Table"
    

    oDoc.Save
    oDoc.Close
    oWordApp.Quit
    Set oDoc = Nothing
    Set oWordApp = Nothing
    Application.CutCopyMode = False
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom