Cần giúp code CreateObject("Shell.Application") sau khi mở hình Ảnh lại lổi code

Liên hệ QC

hondacrv2019

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
19/5/19
Bài viết
116
Được thích
9
Chào cả nhà Giải Pháp Excel VBA
Em đang dùng code này để khi click vào hình ảnh thì mở File hình ảnh đó luôn. Nhưng sau khi chạy code đó xong thì Ảnh lại hiển thị không đúng tên đường dẫn mong mọi người giúp em. XIn chân thành cảm ơn !

Mã:
Private Sub Image1_Click()
  With CreateObject("Shell.Application")
    .Open Range("b1").Value  ' anh chinh
  End With
End Sub


Link video
https://drive.google.com/file/d/1ul...np8Rb-Rs8lP6Nf866WcK2kG-KnabEhvZOF6I4hfvchVrM
 

File đính kèm

Chào cả nhà Giải Pháp Excel VBA
Em đang dùng code này để khi click vào hình ảnh thì mở File hình ảnh đó luôn. Nhưng sau khi chạy code đó xong thì Ảnh lại hiển thị không đúng tên đường dẫn mong mọi người giúp em. XIn chân thành cảm ơn !

Mã:
Private Sub Image1_Click()
  With CreateObject("Shell.Application")
    .Open Range("b1").Value  ' anh chinh
  End With
End Sub

Link video
https://drive.google.com/file/d/1ul...np8Rb-Rs8lP6Nf866WcK2kG-KnabEhvZOF6I4hfvchVrM
Theo file đính kèm, Private Function GetShortPath(FilePath) => bỏ Private, chỉ còn Function GetShortPath(FilePath)
Thêm hàm này vào các sự kiện trong UserForm, ví dụ:
UserForm1.Image1.Picture = LoadPicture((Range("b1").Value)) => UserForm1.Image1.Picture = LoadPicture(GetShortPath(Range("b1").Value))
Chạy code và kiểm tra thử.
 
Upvote 0
Theo file đính kèm, Private Function GetShortPath(FilePath) => bỏ Private, chỉ còn Function GetShortPath(FilePath)
Thêm hàm này vào các sự kiện trong UserForm, ví dụ:
UserForm1.Image1.Picture = LoadPicture((Range("b1").Value)) => UserForm1.Image1.Picture = LoadPicture(GetShortPath(Range("b1").Value))
Chạy code và kiểm tra thử.

Thank a. Đã thử rồi code vẫn sai sau khi mở Ảnh lên. Anh xem lại code giúp em
 

File đính kèm

Upvote 0
Chào cả nhà Giải Pháp Excel VBA
Em đang dùng code này để khi click vào hình ảnh thì mở File hình ảnh đó luôn. Nhưng sau khi chạy code đó xong thì Ảnh lại hiển thị không đúng tên đường dẫn mong mọi người giúp em. XIn chân thành cảm ơn !

Mã:
Private Sub Image1_Click()
  With CreateObject("Shell.Application")
    .Open Range("b1").Value  ' anh chinh
  End With
End Sub


Link video
https://drive.google.com/file/d/1ul...np8Rb-Rs8lP6Nf866WcK2kG-KnabEhvZOF6I4hfvchVrM
Thế thì tài giỏi đấy.
Tôi đang có 1 hình trong Image. Đường dẫn tới nó hiển thị trong B1. Khi tôi click Image thì hình y hệt như trong Image được hiển thị trong Windows Photo Viewer.

Với đường dẫn như trong tập tin thì GetShortPath không cần thiết vì LoadPicture phục vụ đường dẫn dài. Nếu trong đường dẫn có ký tự unicode thì dùng GetShortPath.
------------
Thay cho
Mã:
UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))
thì nên dùng
Mã:
Set UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))
 
Lần chỉnh sửa cuối:
Upvote 0
Thế thì tài giỏi đấy.
Tôi đang có 1 hình trong Image. Đường dẫn tới nó hiển thị trong B1. Khi tôi click Image thì hình y hệt như trong Image được hiển thị trong Windows Photo Viewer.

Với đường dẫn như trong tập tin thì GetShortPath không cần thiết vì LoadPicture phục vụ đường dẫn dài. Nếu trong đường dẫn có ký tự unicode thì dùng GetShortPath.

Em đã thử xóa GetShortPath thì code vẫn chạy sai sau khi mở Photo Viewer . tại em làm cái này để Dò Linh kiện trong công ty em. Khi click vào thì nó mở Photo Viewer để em in ra tờ A4 em dán vào thùng hàng. Mong anh giúp đở

Mã:
Private Sub CommandButton3_Click() ' XEM MAY IN
Range("b1") = Range("G9")  ' thay duong dan
Set UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))
End Sub

Private Sub Image1_Click()
  With CreateObject("Shell.Application")
    .Open Range("b1").Value  ' anh chinh
  End With
End Sub


Sub hienhinhanh()
Set UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))
UserForm1.Show
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em đã thử xóa GetShortPath thì code vẫn chạy sai sau khi mở Photo Viewer . tại em làm cái này để Dò Linh kiện trong công ty em. Khi click vào thì nó mở Photo Viewer để em in ra tờ A4 em dán vào thùng hàng. Mong anh giúp đở
Thử thay
Mã:
UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))
thành
Mã:
Set UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))

Hãy nói sai khi nào vì quá vô lý.

Bạn thao tác thế nào?

Ở thời điểm chào buổi sáng B1 = ??? Bạn click nút "Hien hinh anh" thì có hình đúng trong Image? Các bước tiếp theo thế nào để có cái mà bạn cho là lỗi?
 
Upvote 0
Thử thay
Mã:
UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))
thành
Mã:
Set UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))

Hãy nói sai khi nào vì quá vô lý.

Bạn thao tác thế nào?

Ở thời điểm chào buổi sáng B1 = ??? Bạn click nút "Hien hinh anh" thì có hình đúng trong Image? Các bước tiếp theo thế nào để có cái mà bạn cho là lỗi?

Em gửi Video và File cho bác xem nhé . Em thử vẫn không được

Video:
https://drive.google.com/file/d/1kp...7aKb091B4GS77TsAfm7yIdCuNjv4jCwo7UcMeRUC0M7ns
 

File đính kèm

Upvote 0
Upvote 0
Thêm lệnh này.
Mã:
Me.Repaint
phía dưới lệnh
Mã:
Set UserForm1.Image1.Picture = LoadPicture((Range("b1").Value))


Quá tuyệt vời Me. Repaint cảm ơn bác rất nhiều. Em cũng không cần sửa code thêm chữ Set mà vẫn chạy đúng
 
Upvote 0
Web KT

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

Back
Top Bottom