Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Mail Merge có hình
#1
Kính gửi: Các A/C/E Pro.
Tiên có một "đề bài" nhưng nghĩ mãi không sao làm đc. Nhờ các Pro chỉ giúp:

Đề bài:
1. Có 1 File Excel gồm các cột: Stt, Tên hình, Hình.
2. Có 1 File Word dùng để hiển thị gồm: Stt, Tên hình, Hình.

Yêu cầu:
Dùng Mail Merge để hiển thị Stt, Tên hình, Hình trong Excel lên Word.

Để hiển thị đc Stt và Tên hình thì OK, nhưng Tiên ko biết cách nào lưu trữ được Hình trong  Excel để hiển thị lên Word.
Nhờ các A/C/E Pro giúp.

Cảm ơn nhiều !
Reply
Những người đã cảm ơn
#2
Thế này nhé
Presumably the picture locations are in a column of the Excel sheet that is the datasource.
Thế này nhé....
Ví dụ, bạn có một cột là Tên, Ảnh (trong Excel) trong đó
·        Tên là tên đầy đủ
·        Ảnh là đường dẫn của file ảnh
Khi merger sang, bạn cần phải sửa đổi trường Merge một tẹo:
Bước 1: Chèn Merge Field Tên, Ảnh vào Word
Bước 2: Nhấn Alt+F9 tại trường Ảnh và nó hiện ra cái này
{ MERGEFIELD Picture }
Giống như Excel, dấu {} chèn được khi nhấn tổ hợp Ctrl+F9
Bước 3: Di chuyển chuộn vào sau dấu { của { MERGEFIELD Picture } và nhấn Ctrl+F9, gõ vào dòng lệnh như sau:
{ INCLUDEPICTURE  { MERGEFIELD Ảnh } }
Sau đó nhấn lại Alt+F9 và bạn sẽ thấy kết quả nhé Tiên nhé.
Tuy nhiên nếu bạn đã có ảnh ở trong Excel roài thì vấn đề lại khác, lúc ý – mailmerge sẽ nỏ được nữa mà phải dùng tính năng xuất ảnh sang Word thôi Tiên nhé. Bên GPE có đầy đủ bài viết liên quan đến vụ này đới.

À, có một cái này... Việc lưu ảnh trong Excel không giống như chèn ảnh từ CSDL access – cụ thể là excel không biết ảnh nào thuộc ô nào mà nó coi Ảnh là Đối tượng ngang hàng nhau trong 1 Sheet. Do đó, nếu bạn cho ảnh vào trong Ô Excel thì mail merge cũng chịu nhá.!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Minh Tiên , Noname , maidinhdan
#3
Thanks "pausteigel" !
Tiên sưu tầm được đoạn code (File) này để Link hình trong Excel nhưng khi chạy trên Excel 2013 lỗi ở dòng:
Mã:
ActiveSheet.Shapes("Pic").Delete
"pausteigel" cùng A/C/E Pro xem sửa dòng code giúp nhé !
Toàn bộ đoạn code:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range, PicName As String
 Application.ScreenUpdating = False
 On Error Resume Next
 If Not Intersect([R2], Target) Is Nothing Then
   Set Rng = Sheet3.Range(Sheet3.[B1], Sheet3.[T65536].End(xlUp))
   PicName = Rng.Resize(, 1).Find(Target, LookAt:=xlWhole).Offset(, 20)
   ActiveSheet.Shapes("Pic").Delete
   With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & PicName)
    .Name = "Pic"
    .Left = [B12:O22].Left: .Top = [B12:O22].Top
    .Width = [B12:O22].Width: .Height = [B12:O22].Height
  End With
 End If
End Sub

File đính kèm: http://www.mediafire.com/view/3g5up756k7...ghiem.xlsx
Thanks.
Reply
Những người đã cảm ơn Noname
#4
(23-11-15, 05:06 PM)Minh Tiên Đã viết: Thanks "pausteigel" !
Tiên sưu tầm được đoạn code (File) này để Link hình trong Excel nhưng khi chạy trên Excel 2013 lỗi ở dòng:
Mã:
ActiveSheet.Shapes("Pic").Delete
"pausteigel" cùng A/C/E Pro xem sửa dòng code giúp nhé !
Toàn bộ đoạn code:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range, PicName As String
 Application.ScreenUpdating = False
 On Error Resume Next
 If Not Intersect([R2], Target) Is Nothing Then
   Set Rng = Sheet3.Range(Sheet3.[B1], Sheet3.[T65536].End(xlUp))
   PicName = Rng.Resize(, 1).Find(Target, LookAt:=xlWhole).Offset(, 20)
   ActiveSheet.Shapes("Pic").Delete
   With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & PicName)
    .Name = "Pic"
    .Left = [B12:O22].Left: .Top = [B12:O22].Top
    .Width = [B12:O22].Width: .Height = [B12:O22].Height
  End With
 End If
End Sub

File đính kèm: http://www.mediafire.com/view/3g5up756k7...ghiem.xlsx
Thanks.

Mình nói với Tiên trong bài trước rồi...
Excel không quản lý hình ảnh liên kết với các Cell nên việc biết hình nào thuộc bản ghi/ dòng nào là một điều khó khăn. Vì vậy, khi dùng mailmerge có hình sang word thì trường hình ảnh chỉ là đường dẫn tuyệt đối của hình ảnh. Nếu muốn xem trên excel thì chỉ cần link một đối tượng view với đường dẫn ảnh thôi.
Cái code của bạn làm việc đó đấy!
Đoạn ActiveSheet.Shapes("Pic").Delete là để xóa hình nếu nó đã tồn tại. Từ khóa On Error Resume Next. Vì mình không có Excel2013 nên mình không kiểm chứng được lỗi. Nếu cần bạn dùng teamview mình sẽ xem cho!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Minh Tiên , maidinhdan , Noname
#5
Lệnh ActiveSheet trong Excel của PC mình ko chạy đc. Ko biết do PC mình thiếu thư viện hay Ex2013 ko có lệnh này.
Nhờ các A/C/E chỉ giúp.
Thanks !
Reply
Những người đã cảm ơn
#6
ActiveSheet thì không thể thiếu thư viện được vì nó là một đối tượng làm việc của Excel. Có thể do bạn cài chưa chuẩn (Ex chưa activate), Thứ bạn đang dùng là Addin hoặc bạn đang trỏ đến một sheet không chứa đối tượng. Vì có câu lệnh on error resume ... nên rất khó xác định lỗi. Bạn bỏ lệnh đó đi đã thì biết ngay lỗi ở đâu!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn maidinhdan
#7
Tiên đã bỏ lệnh "on error resume" nên mới biết lỗi tại dòngActiveSheet.Shapes("Pic").Delete

Trong môi trường VBA, khi gõ: ActiveSheet rồi gõ dấu chấm (.) ---> Nó "lặng im" nên Tiên biết là lệnh ActiveSheet không có tác dụng.

Nhờ các Pro chỉ giáo giúp !
Thanks./.
Reply
Những người đã cảm ơn
#8
(25-11-15, 05:56 PM)Minh Tiên Đã viết: Tiên đã bỏ lệnh "on error resume" nên mới biết lỗi tại dòngActiveSheet.Shapes("Pic").Delete

Trong môi trường VBA, khi gõ: ActiveSheet rồi gõ dấu chấm (.) ---> Nó "lặng im" nên Tiên biết là lệnh ActiveSheet không có tác dụng.

Nhờ các Pro chỉ giáo giúp !
Thanks./.

Dim theSheet as worksheet
Set theSheet=ActiveSheet
Sau đó các lệnh sau thì thay ActiveSheet bằng theSheet thì sẽ dùng Intelisense được (hộp chọn các lệnh sau khi gõ dấu chấm).
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Minh Tiên , Noname , maidinhdan


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Mail Merge lấy dữ liệu từ file Access xuhathdo 5 955 23-05-16, 05:53 PM
Bài mới nhất: kuzinhy
  Hướng Dẫn Lập hợp đồng lao động-Dùng mail merge trong word kết hợp với excel Noname 2 7,324 24-10-12, 10:29 AM
Bài mới nhất: Noname
  Mail Merge: Thủ thuật cao cấp trong MS Word Noname 2 3,399 24-10-12, 09:51 AM
Bài mới nhất: Noname

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ