Copy từ excel sang word (4 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

satthuvae

Thành viên thường trực
Tham gia
12/3/09
Bài viết
381
Được thích
52
Copy Paste Link từ word sang Excel khi thay đổi tên File
 
Lần chỉnh sửa cuối:
Em xin cám ơn à.
 
Lần chỉnh sửa cuối:
Mình cũng đang quan tâm đến chủ để này !
 
Tức bên Excel bạn chọn 1 vùng -> Ctrl + C -> sang Word -> thẻ Home -> menu Paste -> PasteSpecial -> Paste link -> Microsoft Excel Worksheet Object?

Nếu không đúng thế thì ngừng đọc tiếp.

Tôi thấy tò mò nên thử nghiệm thôi. Được hay không thì cũng thôi. Tôi test 1 lần.

Lưu ý: Trước khi thử thì lưu lại tập tin Word gốc.

Mở tập tin Word -> ghi lại dưới dạng docm -> Alt + F11 -> đúp chuột vào ThisDocument -> menu Insert -> Module -> dán code sau vào Module1

Khi cần thiết thì chạy Sub ChangeSource -> duyệt tới và chọn tập tin Excel (xlsx, xlsm, xlsb, xls)

Mã:
Sub ChangeSource()
Dim k As Long, filename As String, ext As String, fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogOpen)
    With fd
        .AllowMultiSelect = False
        .Filters.Add "Excel files", "*.xlsx; *.xlsm; *.xlsb; *.xls", 1
        If .Show = -1 Then filename = .SelectedItems(1)
    End With
    Set fd = Nothing
    If filename = "" Then Exit Sub
    For k = 1 To ThisDocument.Fields.Count
        With ThisDocument.Fields(k).LinkFormat
            If .Type = wdLinkTypeOLE Then
                ext = LCase(Mid(.SourceFullName, InStrRev(.SourceFullName, ".") + 1, 3))
                If ext = "xls" Then
                    .SourceFullName = filename
                Else
                    .SourceFullName = filename & Mid(.SourceFullName, InStrRev(.SourceFullName, "!"))
                End If
            End If
        End With
    Next k
End Sub
 
Lần chỉnh sửa cuối:
Tức bên Excel bạn chọn 1 vùng -> Ctrl + C -> sang Word -> thẻ Home -> menu Paste -> PasteSpecial -> Paste link -> Microsoft Excel Worksheet Object?

Nếu không đúng thế thì ngừng đọc tiếp.

Tôi thấy tò mò nên thử nghiệm thôi. Được hay không thì cũng thôi. Tôi test 1 lần.

Lưu ý: Trước khi thử thì lưu lại tập tin Word gốc.

Mở tập tin Word -> ghi lại dưới dạng docm -> Alt + F11 -> đúp chuột vào ThisDocument -> menu Insert -> Module -> dán code sau vào Module1

Khi cần thiết thì chạy Sub ChangeSource -> duyệt tới và chọn tập tin Excel (xlsx, xlsm, xlsb, xls)

Mã:
Sub ChangeSource()
Dim k As Long, filename As String, ext As String, fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogOpen)
    With fd
        .AllowMultiSelect = False
        .Filters.Add "Excel files", "*.xlsx; *.xlsm; *.xlsb; *.xls", 1
        If .Show = -1 Then filename = .SelectedItems(1)
    End With
    Set fd = Nothing
    If filename = "" Then Exit Sub
    For k = 1 To ThisDocument.Fields.Count
        With ThisDocument.Fields(k).LinkFormat
            If .Type = wdLinkTypeOLE Then
                ext = LCase(Mid(.SourceFullName, InStrRev(.SourceFullName, ".") + 1, 3))
                If ext = "xls" Then
                    .SourceFullName = filename
                Else
                    .SourceFullName = filename & Mid(.SourceFullName, InStrRev(.SourceFullName, "!"))
                End If
            End If
        End With
    Next k
End Sub
Bài đã được tự động gộp:

Cám ơn bạn rất nhiều à. Mình hy vọng sẽ đc à.
 
Cám ơn anh batman1 rất nhiều à.
 
Cám ơn anh batman1 rất nhiều à.
Chắc tôi bị ấm đầu, vì nhánh ELSE không bao giờ được thực hiện. :D

Vì thế tôi đề nghị rút gọn code, tức thay
Mã:
ext = LCase(Mid(.SourceFullName, InStrRev(.SourceFullName, ".") + 1, 3))
                If ext = "xls" Then
                    .SourceFullName = filename
                Else
                    .SourceFullName = filename & Mid(.SourceFullName, InStrRev(.SourceFullName, "!"))
                End If

bằng

Mã:
.SourceFullName = filename

Để như cũ cũng chả sai nhưng thừa không cần thiết
 
Web KT

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

Back
Top Bottom