Chèn hình ảnh vào file, sau đó gửi file cho người khác xem

Liên hệ QC

thienph1

Thành viên mới
Tham gia
31/7/17
Bài viết
8
Được thích
0
Giới tính
Nam
Chào mấy anh chị,
Em đang làm Macro để chèn hình ảnh vào file excel, sau đó gửi cho người khác xem thì lại báo "link hình ảnh không tồn tại, hình ảnh đã bị xóa hay đổi tên ..."
Code hàm chèn hình của em:
Public Function CommPic(Pic As String, cel As Range)
On Error Resume Next
ActiveSheet.Shapes(Pic).Delete With ActiveSheet.Pictures.Insert(Pic)
With .ShapeRange
.LockAspectRatio = msoTrue
.Width = cel.Width
.Height = cel.Height
End With
.Name = Pic
.Left = cel.Left
.Top = cel.Top
.Placement = 1
.PrintObject = True
End With
CommPic = ""
End Function

''pic: thư mục + tên hình ảnh
'' cel: ô hiển thị hình ảnh
Nhờ anh chị giúp đỡ.
Thanks!
 
Chào mấy anh chị,
Em đang làm Macro để chèn hình ảnh vào file excel, sau đó gửi cho người khác xem thì lại báo "link hình ảnh không tồn tại, hình ảnh đã bị xóa hay đổi tên ..."
Code hàm chèn hình của em:
Public Function CommPic(Pic As String, cel As Range)
On Error Resume Next
ActiveSheet.Shapes(Pic).Delete With ActiveSheet.Pictures.Insert(Pic)
With .ShapeRange
.LockAspectRatio = msoTrue
.Width = cel.Width
.Height = cel.Height
End With
.Name = Pic
.Left = cel.Left
.Top = cel.Top
.Placement = 1
.PrintObject = True
End With
CommPic = ""
End Function

''pic: thư mục + tên hình ảnh
'' cel: ô hiển thị hình ảnh
Nhờ anh chị giúp đỡ.
Thanks!
Bạn gửi File lên xem thử. Thân chào bạn!
 
Xin lỗi,
Ddữ liệu của công ty. Và em chú yếu hỏi về code hàm nên gửi file test thôi.
khi xóa hình hay đổi tên thì nó hiển thị thế này.
upload_2017-9-18_16-55-3.png
Thanks!
 

File đính kèm

  • InsertPic.xlsm
    16.8 KB · Đọc: 6
Chào mấy anh chị,
Em đang làm Macro để chèn hình ảnh vào file excel, sau đó gửi cho người khác xem thì lại báo "link hình ảnh không tồn tại, hình ảnh đã bị xóa hay đổi tên ..."
Code hàm chèn hình của em
Thử File này, chọn bất kỳ Cell nào cần gán hình , xong nhấn nút chọn hình.
 

File đính kèm

  • Chèn ảnh vào Cell.rar
    172.2 KB · Đọc: 37
Thử File này, chọn bất kỳ Cell nào cần gán hình , xong nhấn nút chọn hình.
Mình cần chèn hình theo link thư mục + tên file hình nên không dùng cách của bạn được rồi.
Cách của bạn gần giống như cách chèn hình ảnh thủ công.
Thanks bạn!
 
Mình cần chèn hình theo link thư mục + tên file hình nên không dùng cách của bạn được rồi.
Cách của bạn gần giống như cách chèn hình ảnh thủ công.
Thanks bạn!
Về quy tắc chèn hình theo link thư mục + tên file hình thì phải đính kèm File và gửi trọn cái Folder có hình kèm theo.
 
Lần chỉnh sửa cuối:
Về quy tắc chèn hình theo link thư mục + tên file hình thì phải đính kèm File vài gửi trọn cái Folder có hình kèm theo.
Chủ yếu mình hỏi về hàm chèn hình, còn link thì sao cũng được thôi bạn, trong code thì link kiểu string mà.
 
Chủ yếu mình hỏi về hàm chèn hình, còn link thì sao cũng được thôi bạn, trong code thì link kiểu string mà.

Muốn hàm thì đọc bài này: "Chèn hình vào cell bằng hàm tự tạo", đây là Link bài viết (bạn tự tìm hiểu).

http://www.giaiphapexcel.com/diendan/threads/chèn-hình-vào-cell-bằng-hàm-tự-tạo.51408/

Về vấn đề chèn hình với tên file hình và link đến 1 thư mục, nếu không đính kèm theo File hình thì tôi cam đoan với bạn ai làm được ra cái hình thì cũng là thánh rồi. Còn muốn có hình thì gán cái hình trong sheet nào đó rồi để ẩn nó đi (chỉ có cách này thôi).
 
Lần chỉnh sửa cuối:
Chào mấy anh chị,
Em đang làm Macro để chèn hình ảnh vào file excel, sau đó gửi cho người khác xem thì lại báo "link hình ảnh không tồn tại, hình ảnh đã bị xóa hay đổi tên ..."
Code hàm chèn hình của em:
Public Function CommPic(Pic As String, cel As Range)
On Error Resume Next
ActiveSheet.Shapes(Pic).Delete With ActiveSheet.Pictures.Insert(Pic)
With .ShapeRange
.LockAspectRatio = msoTrue
.Width = cel.Width
.Height = cel.Height
End With
.Name = Pic
.Left = cel.Left
.Top = cel.Top
.Placement = 1
.PrintObject = True
End With
CommPic = ""
End Function

''pic: thư mục + tên hình ảnh
'' cel: ô hiển thị hình ảnh
Nhờ anh chị giúp đỡ.
Thanks!
Với code của bạn hay code được đưa ra trong chủ đề này thì cũng thế thôi.
Tức nếu bạn mang sang máy khác hoặc bạn xóa ảnh trên máy mình thì ... tèo?

Tại sao? Tư duy chút là ra thôi. Tạo hóa cho ta cái đầu thì dùng thôi kẻo phí. Bạn dùng công thức. Mà đã là công thức thì nó luôn được tính lại. Khi mang sang máy khác thì khi Excel tính lại công thức thì: code của hàm CommPic trước tiên sẽ xóa ảnh trong ô B2. Tiếp theo sẽ nạp ảnh có đường dẫn tại B1. Nhưng ảnh này không còn nữa (bạn đã xóa trên máy mình) hoặc không có (trên máy người khác) nên sẽ ... tèo.

Bạn có 2 cách.
1. Sửa lại code để nếu có ảnh rồi thì không làm gì cả.
2. Không dùng công thức, chỉ dùng Sub. Tức bạn muốn nạp ảnh vào cột B, mà tên tại A thì code sẽ duyệt các dòng khác rỗng của cột A để lấy tên ảnh và nạp ảnh vào ô tương ứng ở cột B. Lúc nào cần thì bạn chạy code 1 lần. Hoặc bạn dùng Sub Worksheet_Change và nếu có thay đổi trong cột A thì chạy code để nhập ảnh vào B.
-------------
Ôi, xin lỗi.
Nhìn lướt qua tưởng khi bạn thấy lỗi thì nhập lại công thức (vd. đúp chuột vào ô -> Enter). Tóm lại là cái đầu của tôi có vấn đề.

Nếu bạn muốn làm theo cách của tôi thì xem tập tin.
 

File đính kèm

  • InsertPic.xlsm
    27.6 KB · Đọc: 31
Lần chỉnh sửa cuối:
Với code của bạn hay code được đưa ra trong chủ đề này thì cũng thế thôi.
Tức nếu bạn mang sang máy khác hoặc bạn xóa ảnh trên máy mình thì ... tèo?

Tại sao? Tư duy chút là ra thôi. Tạo hóa cho ta cái đầu thì dùng thôi kẻo phí. Bạn dùng công thức. Mà đã là công thức thì nó luôn được tính lại. Khi mang sang máy khác thì khi Excel tính lại công thức thì: code của hàm CommPic trước tiên sẽ xóa ảnh trong ô B2. Tiếp theo sẽ nạp ảnh có đường dẫn tại B1. Nhưng ảnh này không còn nữa (bạn đã xóa trên máy mình) hoặc không có (trên máy người khác) nên sẽ ... tèo.

Bạn có 2 cách.
1. Sửa lại code để nếu có ảnh rồi thì không làm gì cả.
2. Không dùng công thức, chỉ dùng Sub. Tức bạn muốn nạp ảnh vào cột B, mà tên tại A thì code sẽ duyệt các dòng khác rỗng của cột A để lấy tên ảnh và nạp ảnh vào ô tương ứng ở cột B. Lúc nào cần thì bạn chạy code 1 lần. Hoặc bạn dùng Sub Worksheet_Change và nếu có thay đổi trong cột A thì chạy code để nhập ảnh vào B.
-------------
Ôi, xin lỗi.
Nhìn lướt qua tưởng khi bạn thấy lỗi thì nhập lại công thức (vd. đúp chuột vào ô -> Enter). Tóm lại là cái đầu của tôi có vấn đề.

Nếu bạn muốn làm theo cách của tôi thì xem tập tin.
Cảm ơn bạn @batman1 ,
Bạn có thể cho mình contact để hỏi thêm 1 chút vấn đề được không?
Mail: hoangthien0410@gmail.com
SĐT: 01655005419
Thanks!
 
Bạn có thể cho mình contact để hỏi thêm 1 chút vấn đề được không?
Trên GPE tôi đã từng từ chối rất nhiều lần. Tôi biết có nhiều người không hài lòng.
Có gì cần hỏi bạn cứ hỏi ở đây. Còn nhiều người khác nữa mà.
 
File như bài 8 tôi nêu: Còn muốn có hình thì gán cái hình trong sheet nào đó rồi để ẩn nó đi.
Từ B6:B125, bạn có thể thay bất kỳ tên gì, C6:C125 xóa hình và thay bất kỳ cái hình nào nó đều hiểu.

 

File đính kèm

  • HINH THE.rar
    241.2 KB · Đọc: 16
File như bài 8 tôi nêu: Còn muốn có hình thì gán cái hình trong sheet nào đó rồi để ẩn nó đi.
Từ B6:B125, bạn có thể thay bất kỳ tên gì, C6:C125 xóa hình và thay bất kỳ cái hình nào nó đều hiểu.
File này dùng công thức không hả thầy (em không thấy code). Ở sheet "THE" số 1, 2, 3 không biết có công dụng gì không thầy. Em xin cám ơn.
 
File này dùng công thức không hả thầy (em không thấy code). Ở sheet "THE" số 1, 2, 3 không biết có công dụng gì không thầy. Em xin cám ơn.
Trong File chỉ sử dụng hàm, cái này làm giùm cho thành viên khác, cách sử dụng rất đơn giản:

Vào J6 gõ bất kỳ số thứ tự nào của danh sách từ 1 đến 120, thì hiện cái hình của danh sách đó. Do đơn vị có 120 nhân viên nên làm kiểu này, còn nếu nhiều hơn thì phải để hình trong Folder và sử dụng VBA (File nhẹ thì tốc độ mới nhanh).

Việc Load hình thì ứng dụng vào nhiều việc, tùy nhu cầu công việc: Cụ thể là quản lý nhân sự, quản lý tội phạm, kiểm tra thông tin về ô nhiễm môi trường, thể hiện thông tin về tầng đất, lớp đất trong địa chất..v..v.....

Nhưng chủ Topic cứ vòng vo tam quốc mãi nên tôi chỉ làm tới đây thì ngưng (không làm thêm nữa).
 
Trong File chỉ sử dụng hàm, cái này làm giùm cho thành viên khác, cách sử dụng rất đơn giản:

Vào J6 gõ bất kỳ số thứ tự nào của danh sách từ 1 đến 120, thì hiện cái hình của danh sách đó. Do đơn vị có 120 nhân viên nên làm kiểu này, còn nếu nhiều hơn thì phải để hình trong Folder và sử dụng VBA (File nhẹ thì tốc độ mới nhanh).

Việc Load hình thì ứng dụng vào nhiều việc, tùy nhu cầu công việc: Cụ thể là quản lý nhân sự, quản lý tội phạm, kiểm tra thông tin về ô nhiễm môi trường, thể hiện thông tin về tầng đất, lớp đất trong địa chất..v..v.....

Nhưng chủ Topic cứ vòng vo tam quốc mãi nên tôi chỉ làm tới đây thì ngưng (không làm thêm nữa).
Dạ, vâng. Em cám ơn thầy.
 
Web KT
Back
Top Bottom