Xin hỗ trợ về VBA lưu nhập ảnh

Liên hệ QC

beetune1991

Thành viên hoạt động
Tham gia
28/3/19
Bài viết
170
Được thích
5
Chào các anh chị,

Em có câu hỏi xin nhờ các anh chị hỗ trợ em ạ.
hiện tại em có file đính kèm có sheet nhập ảnh để lưu ảnh vào các sheet 1,2,3,4
Bây giờ em muốn như sau ạ
1. khi em ấn lưu ảnh thì các ô trong sheet "DS" đồng thời cũng lưu được ạ
2. Nút xóa ảnh làm mới (chỉ sheet "DS" ạ.)

Các anh chị hỗ trợ em với ạ.

Em xin cám ơn.
 

File đính kèm

  • HÀM LẤY ẢNH lưu.xlsm
    29.2 KB · Đọc: 21
covid vắng quá. không thấy ai trả lời.
 
Upvote 0
anh ơi cho em hỏi. Nếu mình muốn đổi vị trí dán ảnh trong sheet "DS" thì thay đổi phần nào ạ.
vì hiện tại em đang để trong đó vị trí số 1 đang là "B5" tuy nhiên em muốn đổi sang "D10" chẳng hạn thì em không biết đổi như thế nào. anh hướng dẫn em với ạ.
 
Upvote 0
anh ơi cho em hỏi. Nếu mình muốn đổi vị trí dán ảnh trong sheet "DS" thì thay đổi phần nào ạ.
vì hiện tại em đang để trong đó vị trí số 1 đang là "B5" tuy nhiên em muốn đổi sang "D10" chẳng hạn thì em không biết đổi như thế nào. anh hướng dẫn em với ạ.
Theo file bài #4 thì tìm ô nào chứa tên sheet rồi dán ảnh sang ô kế bên phải nó: muốn dán vào B5 có nghĩa là tìm sheet có tên là "1" sẽ được kết quả là A5 => dán ảnh vào B5.

Bây giờ bạn muốn đổi sang D10 thì phải có lý do gì về cách bố trí mới ở sheet DS chứ không thể hỏi khan như vậy, tôi không biết trả lời thế nào cả.
 
Upvote 0
1637559740589.png
Nó đang mặc định cột B anh ạ. em đổi ảnh sang cột D thì nó ko theo ảnh nữa.
Giờ em muốn thêm bớt cột vì thế sẽ gây cột chèn ảnh bị dịch chuyển không còn là B nữa.
Số liệu có thể thay đổi trong tương lai không cố định cho nên anh có thể chỉ em đoạn code sửa theo số cột tương ứng khi mình thay đổi không với ạ.
Tương lai còn thể là E hoặc F hoặc một cột bất kì nào ạ.
 
Upvote 0
View attachment 269461
Nó đang mặc định cột B anh ạ. em đổi ảnh sang cột D thì nó ko theo ảnh nữa.
Giờ em muốn thêm bớt cột vì thế sẽ gây cột chèn ảnh bị dịch chuyển không còn là B nữa.
Số liệu có thể thay đổi trong tương lai không cố định cho nên anh có thể chỉ em đoạn code sửa theo số cột tương ứng khi mình thay đổi không với ạ.
Tương lai còn thể là E hoặc F hoặc một cột bất kì nào ạ.
Tại sub LuuAnh(), bạn tìm dòng:
PicCell2 = Sheet5.Range("A4:A500").Find(What:=ShD, LookIn:=xlFormulas, LookAt:=xlWhole).Offset(0, 1).Address(0, 0)
Chỗ chữ đậm Offset(0, 1) đó là chỗ cần sửa. Nếu muốn lệch sang cột D so với cột gốc (cột A) thì sửa thành Offset(0, 3), tức là lệch đi 3 cột. Tương tự, với E thì Offset(0, 4), F thì Offset(0, 5) ...
 
Upvote 0
Tại sub LuuAnh(), bạn tìm dòng:
PicCell2 = Sheet5.Range("A4:A500").Find(What:=ShD, LookIn:=xlFormulas, LookAt:=xlWhole).Offset(0, 1).Address(0, 0)
Chỗ chữ đậm Offset(0, 1) đó là chỗ cần sửa. Nếu muốn lệch sang cột D so với cột gốc (cột A) thì sửa thành Offset(0, 3), tức là lệch đi 3 cột. Tương tự, với E thì Offset(0, 4), F thì Offset(0, 5) ...
ừ nhỉ, sao ngu thế nhỉ. em đã nghi phần ấy rồi. mà không dám sửa. Em cám ơn anh ạ.
 
Upvote 0
Tại sub LuuAnh(), bạn tìm dòng:
PicCell2 = Sheet5.Range("A4:A500").Find(What:=ShD, LookIn:=xlFormulas, LookAt:=xlWhole).Offset(0, 1).Address(0, 0)
Chỗ chữ đậm Offset(0, 1) đó là chỗ cần sửa. Nếu muốn lệch sang cột D so với cột gốc (cột A) thì sửa thành Offset(0, 3), tức là lệch đi 3 cột. Tương tự, với E thì Offset(0, 4), F thì Offset(0, 5) ...
anh ơi cho em hỏi sheet DS mà đổi tên sheet thì bị lỗi. em nhìn trong code thì thấy a đang đặt theo tên của sheet. Nếu em muốn đổi code sang gọi thành Sheet 5 (sheet của cái DS) thì em đổi như thế nào anh nhỉ.
 
Upvote 0
anh ơi cho em hỏi sheet DS mà đổi tên sheet thì bị lỗi. em nhìn trong code thì thấy a đang đặt theo tên của sheet. Nếu em muốn đổi code sang gọi thành Sheet 5 (sheet của cái DS) thì em đổi như thế nào anh nhỉ.
Chỗ Sheet5 sửa thành Sheets("DS")
 
Upvote 0
Chỗ Sheet5 sửa thành Sheets("DS")
Ngược anh ạ. Anh đang để là Sheet "DS" --> Set DCell2 = Sheets("DS").Range(PicCell2)
em đang muốn chuyển về Sheet 5 anh ạ. mà e đang thấy khá là nhiều code viết là Sheet ("DS") . nên em hỏi anh là nên đổi những chỗ nào và như thế nào ạ.
 
Upvote 0
Ngược anh ạ. Anh đang để là Sheet "DS" --> Set DCell2 = Sheets("DS").Range(PicCell2)
em đang muốn chuyển về Sheet 5 anh ạ. mà e đang thấy khá là nhiều code viết là Sheet ("DS") . nên em hỏi anh là nên đổi những chỗ nào và như thế nào ạ.
À, thế thì đổi thành Sheets("Sheet 5")
 
Upvote 0
Upvote 0
Bạn nói đã đổi tên DS thành Sheet 5 nhưng trong cửa sổ code tôi vẫn thấy Sheet5 là sheet DS View attachment 269744nên lỗi là phải rồi
Nếu muốn dòng lỗi đó chạy thì một là sửa lại thành Sheets("DS"). hoặc hai là sửa thành Sheet5.
1638004121578.png

ý em là worksheet Name, tên sheet mặc định đang là sheet 5 anh ạ. Anh nhìn chỗ em bôi anh ấy ạ.
vì em mà đổi sheet đó sang kiểu chữ ả rập thì nó toàn tên kiểu ???? không đọc được anh ạ
không phải đổi tên sheet trực tiếp DS sang dạng tên khác. anh ạ.
 
Upvote 0
View attachment 269745

ý em là worksheet Name, tên sheet mặc định đang là sheet 5 anh ạ. Anh nhìn chỗ em bôi anh ấy ạ.
vì em mà đổi sheet đó sang kiểu chữ ả rập thì nó toàn tên kiểu ???? không đọc được anh ạ
không phải đổi tên sheet trực tiếp DS sang dạng tên khác. anh ạ.
Bạn nói mấy lần mà tôi vẫn chưa hiểu bạn muốn nói gì: Sheet5 hay là Sheet 5 (tôi chẳng thấy cái Sheet 5 nào trong mấy cái hình bạn đính kèm)? Muốn dòng báo lỗi đó chạy thì chỉ cần sửa Set DCell2 = Sheets("DS").Range(PicCell2) thành Set DCell2 = Sheet5.Range(PicCell2) , không quan tâm nó tên là gì.
 
Upvote 0
Bạn nói mấy lần mà tôi vẫn chưa hiểu bạn muốn nói gì: Sheet5 hay là Sheet 5 (tôi chẳng thấy cái Sheet 5 nào trong mấy cái hình bạn đính kèm)? Muốn dòng báo lỗi đó chạy thì chỉ cần sửa Set DCell2 = Sheets("DS").Range(PicCell2) thành Set DCell2 = Sheet5.Range(PicCell2) , không quan tâm nó tên là gì.
1638006071017.jpeg
z2972239543698_8fd047b14e79734bcdebb91e7aca67ea.jpg

Sheet 5 là sheet "DS" mà anh , "DS" chỉ là cái tên em đặt ở bên ngoài thôi.
Ý em là code theo cái sheet 5 chứ không liên quan tới cái tên nữa.


z2972239506543_281be6c5ffa8096aeb1b966e8cbfb116.jpg

không phải đổi tên phần này. vì phần DS này đổi sang chữ khác ký tự mà ko phải tiếng anh hoặc ABCD thì sheet nó ko đọc được. chứ không phải e đổi DS thành tên Sheet 5.
nếu anh để ý sheet 33 trong hình trên cùng nó sẽ là sheet 33 (???) chỗ ??? là nó không đọc được ngôn ngữ khác anh ạ
 
Upvote 0
View attachment 269756
View attachment 269757

Sheet 5 là sheet "DS" mà anh , "DS" chỉ là cái tên em đặt ở bên ngoài thôi.
Ý em là code theo cái sheet 5 chứ không liên quan tới cái tên nữa.


View attachment 269759

không phải đổi tên phần này. vì phần DS này đổi sang chữ khác ký tự mà ko phải tiếng anh hoặc ABCD thì sheet nó ko đọc được. chứ không phải e đổi DS thành tên Sheet 5.
nếu anh để ý sheet 33 trong hình trên cùng nó sẽ là sheet 33 (???) chỗ ??? là nó không đọc được ngôn ngữ khác anh ạ
Bạn không biết Sheet5 với Sheet 5 khác nhau 1 khoảng trắng à?

Cứ sửa code như tôi nói.
 
Upvote 0
Web KT
Back
Top Bottom