Chèn hình vào cell bằng hàm tự tạo

sonhn8800

Thành viên mới
Tham gia ngày
21 Tháng bảy 2009
Bài viết
7
Được thích
0
Điểm
663
Xưa nay người ta thường chèn hình vào bảng tính bằng 1 thủ tục nào đó (Sub...). Vậy các bạn có nghĩ rằng có thể chèn hình bằng hàm tự tạo không? Tức là ta gõ hàm vào cell, lập tức hình được chèn vào ngay cell ấy!
Ví dụ ta gõ thế này: =CommPic("D:\Pic\Hinh 1.jpg",C5) thì lập tức Hinh 1.jpg được chèn vừa vặn vào cell C5
Hấp dẫn nhỉ? Vậy mà code lại khá đơn giản:
Mã:
Function CommPic(Pic As String, Cel As Range) As String
  On Error Resume Next
  Application.Volatile
  Cel.Comment.Delete
  If Cel.Comment Is Nothing Then Cel.AddComment
  Cel.Comment.Text vbLf
  With Cel.Comment.Shape
    .Left = Cel.Left: .Top = Cel.Top: .Visible = True
    .Width = Cel.Width: .Height = Cel.Height
    .Fill.UserPicture Pic
  End With
End Function
Thí nghiệm:
- Mở Excel, chèn code trên vào module, xong lưu file vào 1 thư mục nào đó
- Copy 1 số hình vào cùng thư mục chưa file Excel (file của tôi có 4 hình AT01.jpg, AT02.jpg, AT03.jpgAT04.jpg)
- Gõ công thức này vào cell B3:
PHP:
=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)
- Từ cell A5 trở xuống, gõ tên các file hình
- Tại cell B5, gõ công thức =$B$3&A5 và kéo fill xuống
- Tại cell C5, gõ công thúc =CommPic(B5,C5) và kéo fill xuống
Xem thử hình đã được Add vào có ngoạn mục không?
Hy vọng tạo sự dễ dàng cho các bạn, những ai quan tâm đến việc chèn hình ảnh vào bảng tính
Cảm ơn bác, hàm này của bác giúp em nhiều lắm.
Nhưng nếu em muốn chèn ảnh mà giữ nguyên kích thước file ảnh (ví dụ ảnh theo chiều ngang 10*15cm, chèn vào ô vẫn giữ nguyên là 10*15cm khi in ra, ảnh theo chiều đứng là 15*10cm in ra vẫn là ảnh đứng ) thì làm thế nào hả bác ?
Cảm ơn bác nhiều
 

ppc0312

whom?
Tham gia ngày
2 Tháng tư 2008
Bài viết
624
Được thích
320
Điểm
735
Cảm ơn bác, hàm này của bác giúp em nhiều lắm.
Nhưng nếu em muốn chèn ảnh mà giữ nguyên kích thước file ảnh (ví dụ ảnh theo chiều ngang 10*15cm, chèn vào ô vẫn giữ nguyên là 10*15cm khi in ra, ảnh theo chiều đứng là 15*10cm in ra vẫn là ảnh đứng ) thì làm thế nào hả bác ?
Cảm ơn bác nhiều
Thì sửa .Width hay .Height, hay cả 2 trên đó
 

sonhn8800

Thành viên mới
Tham gia ngày
21 Tháng bảy 2009
Bài viết
7
Được thích
0
Điểm
663
Thì sửa .Width hay .Height, hay cả 2 trên đó
Cảm ơn bác nhưng đống ảnh của em có cả ảnh đứng (cao 15, rộng 10cm) và ảnh nằm (cao 10, rộng 15cm). Em muốn mớ ảnh này được chèn tự động, ảnh đứng vẫn đứng, ảnh nằm vẫn nằm theo kích thước thực của ảnh (10cmx15cm) chứ k bị fit theo ô bác ạ. Em k biết làm thế nào để chỉnh
 

batman1

Thành viên gạo cội
Tham gia ngày
8 Tháng chín 2014
Bài viết
3,569
Được thích
5,458
Điểm
560
Cảm ơn bác nhưng đống ảnh của em có cả ảnh đứng (cao 15, rộng 10cm) và ảnh nằm (cao 10, rộng 15cm). Em muốn mớ ảnh này được chèn tự động, ảnh đứng vẫn đứng, ảnh nằm vẫn nằm theo kích thước thực của ảnh (10cmx15cm) chứ k bị fit theo ô bác ạ. Em k biết làm thế nào để chỉnh
Bài #2 và #4 - nhập CENTER

 

hoang_dr

Thành viên mới
Tham gia ngày
9 Tháng ba 2020
Bài viết
24
Được thích
0
Điểm
13
Tuổi
49
Xưa nay người ta thường chèn hình vào bảng tính bằng 1 thủ tục nào đó (Sub...). Vậy các bạn có nghĩ rằng có thể chèn hình bằng hàm tự tạo không? Tức là ta gõ hàm vào cell, lập tức hình được chèn vào ngay cell ấy!
Ví dụ ta gõ thế này: =CommPic("D:\Pic\Hinh 1.jpg",C5) thì lập tức Hinh 1.jpg được chèn vừa vặn vào cell C5
Hấp dẫn nhỉ? Vậy mà code lại khá đơn giản:
Mã:
Function CommPic(Pic As String, Cel As Range) As String
  On Error Resume Next
  Application.Volatile
  Cel.Comment.Delete
  If Cel.Comment Is Nothing Then Cel.AddComment
  Cel.Comment.Text vbLf
  With Cel.Comment.Shape
    .Left = Cel.Left: .Top = Cel.Top: .Visible = True
    .Width = Cel.Width: .Height = Cel.Height
    .Fill.UserPicture Pic
  End With
End Function
Thí nghiệm:
- Mở Excel, chèn code trên vào module, xong lưu file vào 1 thư mục nào đó
- Copy 1 số hình vào cùng thư mục chưa file Excel (file của tôi có 4 hình AT01.jpg, AT02.jpg, AT03.jpgAT04.jpg)
- Gõ công thức này vào cell B3:
PHP:
=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)
- Từ cell A5 trở xuống, gõ tên các file hình
- Tại cell B5, gõ công thức =$B$3&A5 và kéo fill xuống
- Tại cell C5, gõ công thúc =CommPic(B5,C5) và kéo fill xuống
Xem thử hình đã được Add vào có ngoạn mục không?
Hy vọng tạo sự dễ dàng cho các bạn, những ai quan tâm đến việc chèn hình ảnh vào bảng tính
chào các bạn. tôi mới học excel để làm văn phòng, chưa biết gì. hôm nay thấy các bạn hướng dẫn trong này tôi cũng xin phép nhờ các bạn hướng dẫn giúp tôi. tôi được gửi file ảnh và file danh sách nhân viên (tệp đính kèm) vấn đề là nếu đánh từng tên sẽ rất lâu, có cách nào làm tự động được không ạ. tôi xin cảm ơn.
 

File đính kèm

nongtanduc

Thành viên mới
Tham gia ngày
14 Tháng năm 2020
Bài viết
2
Được thích
1
Điểm
15
Tuổi
28
Xưa nay người ta thường chèn hình vào bảng tính bằng 1 thủ tục nào đó (Sub...). Vậy các bạn có nghĩ rằng có thể chèn hình bằng hàm tự tạo không? Tức là ta gõ hàm vào cell, lập tức hình được chèn vào ngay cell ấy!
Ví dụ ta gõ thế này: =CommPic("D:\Pic\Hinh 1.jpg",C5) thì lập tức Hinh 1.jpg được chèn vừa vặn vào cell C5
Hấp dẫn nhỉ? Vậy mà code lại khá đơn giản:
Mã:
Function CommPic(Pic As String, Cel As Range) As String
  On Error Resume Next
  Application.Volatile
  Cel.Comment.Delete
  If Cel.Comment Is Nothing Then Cel.AddComment
  Cel.Comment.Text vbLf
  With Cel.Comment.Shape
    .Left = Cel.Left: .Top = Cel.Top: .Visible = True
    .Width = Cel.Width: .Height = Cel.Height
    .Fill.UserPicture Pic
  End With
End Function
Thí nghiệm:
- Mở Excel, chèn code trên vào module, xong lưu file vào 1 thư mục nào đó
- Copy 1 số hình vào cùng thư mục chưa file Excel (file của tôi có 4 hình AT01.jpg, AT02.jpg, AT03.jpgAT04.jpg)
- Gõ công thức này vào cell B3:
PHP:
=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)
- Từ cell A5 trở xuống, gõ tên các file hình
- Tại cell B5, gõ công thức =$B$3&A5 và kéo fill xuống
- Tại cell C5, gõ công thúc =CommPic(B5,C5) và kéo fill xuống
Xem thử hình đã được Add vào có ngoạn mục không?
Hy vọng tạo sự dễ dàng cho các bạn, những ai quan tâm đến việc chèn hình ảnh vào bảng tính
Sao em làm như anh nhưng khi in không hiện lên hình vậy? mong anh chỉ giúp!
 

nongtanduc

Thành viên mới
Tham gia ngày
14 Tháng năm 2020
Bài viết
2
Được thích
1
Điểm
15
Tuổi
28
Xưa nay người ta thường chèn hình vào bảng tính bằng 1 thủ tục nào đó (Sub...). Vậy các bạn có nghĩ rằng có thể chèn hình bằng hàm tự tạo không? Tức là ta gõ hàm vào cell, lập tức hình được chèn vào ngay cell ấy!
Ví dụ ta gõ thế này: =CommPic("D:\Pic\Hinh 1.jpg",C5) thì lập tức Hinh 1.jpg được chèn vừa vặn vào cell C5
Hấp dẫn nhỉ? Vậy mà code lại khá đơn giản:
Mã:
Function CommPic(Pic As String, Cel As Range) As String
  On Error Resume Next
  Application.Volatile
  Cel.Comment.Delete
  If Cel.Comment Is Nothing Then Cel.AddComment
  Cel.Comment.Text vbLf
  With Cel.Comment.Shape
    .Left = Cel.Left: .Top = Cel.Top: .Visible = True
    .Width = Cel.Width: .Height = Cel.Height
    .Fill.UserPicture Pic
  End With
End Function
Thí nghiệm:
- Mở Excel, chèn code trên vào module, xong lưu file vào 1 thư mục nào đó
- Copy 1 số hình vào cùng thư mục chưa file Excel (file của tôi có 4 hình AT01.jpg, AT02.jpg, AT03.jpgAT04.jpg)
- Gõ công thức này vào cell B3:
PHP:
=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)
- Từ cell A5 trở xuống, gõ tên các file hình
- Tại cell B5, gõ công thức =$B$3&A5 và kéo fill xuống
- Tại cell C5, gõ công thúc =CommPic(B5,C5) và kéo fill xuống
Xem thử hình đã được Add vào có ngoạn mục không?
Hy vọng tạo sự dễ dàng cho các bạn, những ai quan tâm đến việc chèn hình ảnh vào bảng tính
Không nhầm thì khi in bạn phải cài đặt lại 1 chú
t: View attachment 237330
thanks anh
Em in được rồi nhưng khi lưu code lại để sử dụng lần sau thì lưu không được?
 

File đính kèm

Phamvanchat

Thành viên mới
Tham gia ngày
10 Tháng mười 2018
Bài viết
27
Được thích
7
Điểm
165
Tuổi
30
Các anh chị cho em hỏi, không có hình ở folder mà lại có hình ở sheets khác, thì làm sao để áp dụng hàm ạ, như file của em hình các ngày từ 1- 30 lấy hình ở sheet tổng hợp, Cột D ở sheet tổng hợp giống với cột D ở các sheets ngày. Xin giúp đỡ ạ, em rất cám ơn.
 

File đính kèm

emlahp3

Thành viên mới
Tham gia ngày
27 Tháng mười 2018
Bài viết
1
Được thích
0
Điểm
163
Tuổi
27
Các ac cho em hỏi khi filter hoặc sorting thì bị lỗi "fix object will moved" lặp đo lặp lại nhiều lần. Có cao thủ nào hỗ trợ em được không ạ?
Em cám ơn!
 
Top Bottom