(Help) xóa hình ảnh trong excel bằng macro

Liên hệ QC

cando129

Thành viên mới
Tham gia
26/4/19
Bài viết
20
Được thích
-1
Giới tính
Nam
em muốn xóa 1 hình trong excel bằng macro

với đoạn code dưới nhưng mà cái hình của em nó hay thay đổi tên(Picture 13), nên nó toàn bị lỗi, anh chị giúp em code nào mà dùng con trỏ chọn vào hình đó mà không bị thay đổi giúp em.
Cells.Select
Selection.ClearContents
ActiveSheet.Shapes.Range(Array("Picture 13")).Select
Selection.delete

em cảm ơn ạ!
 
xóa mà k cần biết tên nó thì đây:

Mã:
Dim shp As Shape

 For Each shp In ActiveSheet.Shapes
  shp.Delete
 Next shp
 
Cái này là xóa sạch, bài 1 người ta cần xóa chỉ 1 hình.
bài k có file đính kèm, mà cũng k nói cụ thể.
Nhưng nhìn vào code đầu, thớt ấy định
Cells.Select
Selection.ClearContents
có nghĩa là xóa sạch còn gì bác
 
code nào mà dùng con trỏ chọn vào hình đó mà không bị thay đổi giúp em.
Dùng con trỏ chọn vào hình đó mà không bị thay đổi thì đâu cần viết code, bạn cứ bỏ hết code đi rồi thử đưa con trỏ vào hình mà xem.
 
xóa mà k cần biết tên nó thì đây:

Mã:
Dim shp As Shape

 For Each shp In ActiveSheet.Shapes
  shp.Delete
 Next shp
cảm ơn bạn, nhưng ý mình là chỉ xóa hình cần xóa thôi.vì mỗi lần mình chạy macro thì sẽ tạo ra hình số 2 đè lên số 1, và cứ tăng giá trị tên(pic 1 >>pic n) lên n lần mình chạy macro nên không thể gán tên giá trị hình đó cố định được.
mình có để file đính kèm, ace nào biết giúp mình với nhé.
cảm ơn ạ
 

File đính kèm

  • xoa hinh.xlsx
    44.9 KB · Đọc: 9
cảm ơn bạn, nhưng ý mình là chỉ xóa hình cần xóa thôi.vì mỗi lần mình chạy macro thì sẽ tạo ra hình số 2 đè lên số 1, và cứ tăng giá trị tên(pic 1 >>pic n) lên n lần mình chạy macro nên không thể gán tên giá trị hình đó cố định được.
mình có để file đính kèm, ace nào biết giúp mình với nhé.
cảm ơn ạ
Cái này thì bạn làm cái code khi tải hình lên thì đặt cho nó 1 cái tên.Rồi cái code sau nhập vào thì kiểm tra xem nó có cái hình đó chưa rồi xóa theo tên đó là được à.
 
cảm ơn bạn, nhưng ý mình là chỉ xóa hình cần xóa thôi.vì mỗi lần mình chạy macro thì sẽ tạo ra hình số 2 đè lên số 1, và cứ tăng giá trị tên(pic 1 >>pic n) lên n lần mình chạy macro nên không thể gán tên giá trị hình đó cố định được.
mình có để file đính kèm, ace nào biết giúp mình với nhé.
cảm ơn ạ
Thử code sau:
Mã:
Sub XoaAnh()
Dim Hinh As Shape
For Each Hinh In ActiveSheet.Shapes
    If Not Intersect(Range("B1:B2"), Hinh.TopLeftCell) Is Nothing Then
        Hinh.Delete
    End If
Next Hinh
End Sub
 
Cái này thì bạn làm cái code khi tải hình lên thì đặt cho nó 1 cái tên.Rồi cái code sau nhập vào thì kiểm tra xem nó có cái hình đó chưa rồi xóa theo tên đó là được à.
mình thử add tên nó những giá trị cứ tự thay đổi lúc làm lại lần nữa.
Bài đã được tự động gộp:

Thử code sau:
Mã:
Sub XoaAnh()
Dim Hinh As Shape
For Each Hinh In ActiveSheet.Shapes
    If Not Intersect(Range("B1:B2"), Hinh.TopLeftCell) Is Nothing Then
        Hinh.Delete
    End If
Next Hinh
End Sub
nó xóa luôn cái hình số 1 luôn bác ơi, ý mình muốn xóa hình số 2 để lại hình 1 ý.
 
mình thử add tên nó những giá trị cứ tự thay đổi lúc làm lại lần nữa.
Bài đã được tự động gộp:


nó xóa luôn cái hình số 1 luôn bác ơi, ý mình muốn xóa hình số 2 để lại hình 1 ý.
Bạn cho cái code của bạn lên xem nào.Mà bạn muốn chạy kiểu gì ta.
 
Bạn cho cái code của bạn lên xem nào.Mà bạn muốn chạy kiểu gì ta.
Sheets("working").Select
Range("A1").Select
ActiveSheet.Pictures.Insert( _
"C:\DATA\DU LIEU\PIC\HINH KHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\hinhtui\pic1.jpg" _
).Select
đây ạ, ý mình là xóa hình số 2 đè lên hình số 1 ở file đính kèm phía trên ý,
 
Lần chỉnh sửa cuối:
mình thử add tên nó những giá trị cứ tự thay đổi lúc làm lại lần nữa.
Bài đã được tự động gộp:


nó xóa luôn cái hình số 1 luôn bác ơi, ý mình muốn xóa hình số 2 để lại hình 1 ý.
Thì xóa rồi gán hình vào, chứ bạn đâu có hỏi gán hình.
 
Sheets("working").Select
Range("A1").Select
ActiveSheet.Pictures.Insert( _
"C:\DATA\DU LIEU\PIC\HINH KHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\hinhtui\pic1.jpg" _
).Select
đây ạ, ý mình là xóa hình số 2 đè lên hình số 1 ở file đính kèm phía trên ý,
Bạn thử chạy cái này xem.
Mã:
Sub linhtinh()
 On Error Resume Next
ActiveSheet.Shapes.Range(Array("PIC")).Delete
Sheets("working").Select
Range("A1").Select
ActiveSheet.Pictures.Insert( _
"C:\DATA\DU LIEU\PIC\HINH KHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\hinhtui\pic1.jpg" _
).Select
Selection.shap.Name = "PIC"
End Sub
 
Bạn thử chạy cái này xem.
Mã:
Sub linhtinh()
On Error Resume Next
ActiveSheet.Shapes.Range(Array("PIC")).Delete
Sheets("working").Select
Range("A1").Select
ActiveSheet.Pictures.Insert( _
"C:\DATA\DU LIEU\PIC\HINH KHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\hinhtui\pic1.jpg" _
).Select
Selection.shap.Name = "PIC"
End Sub
nó báo lỗi ở đoạn
Selection.shap.Name = "PIC"
và cũng không xóa được hình đó.
bây giờ bác có cách nào xóa hình số 2 đang nằm đè trên hình số 1 như file đính kèm không.
 

File đính kèm

  • xoa hinh.xlsx
    44.9 KB · Đọc: 5
Thay vì phải viết code lung tung sao chúng ta không xóa thủ công cho gọn

1. Nhấn Ctrl+G
2. Chọn thẻ Special
3. Chọn thẻ Objects, sau đó bấm OK
4. Nhấn phím Delete
 
nó báo lỗi ở đoạn
Selection.shap.Name = "PIC"
và cũng không xóa được hình đó.
bây giờ bác có cách nào xóa hình số 2 đang nằm đè trên hình số 1 như file đính kèm không.
Bạn sửa thành thế này nhé.
Mã:
Sub linhtinh()
On Error Resume Next
ActiveSheet.Shapes.Range(Array("PIC")).Delete
Sheets("working").Select
Range("A1").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\huydt\Desktop\linh tinh\anh\1712285_2952018.jpg" _
).Name = "PIC"
End Sub
 
Thay vì phải viết code lung tung sao chúng ta không xóa thủ công cho gọn

1. Nhấn Ctrl+G
2. Chọn thẻ Special
3. Chọn thẻ Objects, sau đó bấm OK
4. Nhấn phím Delete
nói như bác thì dễ quá, mình ấn chuột zô cái hình đổi ấn phím delete lẹ hơn ^^.cái mình muốn chạy marco để xóa một số thứ nữa bác à,
Bài đã được tự động gộp:

Bạn sửa thành thế này nhé.
Mã:
Sub linhtinh()
On Error Resume Next
ActiveSheet.Shapes.Range(Array("PIC")).Delete
Sheets("working").Select
Range("A1").Select
ActiveSheet.Pictures.Insert( _
"C:\Users\huydt\Desktop\linh tinh\anh\1712285_2952018.jpg" _
).Name = "PIC"
End Sub
yeah được rồi bác nhé,nhưng mà code của bác là xóa xong rồi tạo. nên mình đảo lại tạo xong rồi xóa.cảm ơn bác nhiều.
done topic nhé.
một lần nữa cảm ơn bác
 
Lần chỉnh sửa cuối:
hi do mình không nói rõ ràng, hình 1 là hình cố định hình 2 mới là chạy macro tạo ra và mình muốn xóa hình số 2 để lại hình 1
Rút kinh nghiệm lần sau để hỏi cho cụ thể cụ thể, rỏ ràng . Gán hình xong thì làm cái gì tiếp theo.
Hỏi như thế nào thì tôi trả lời như thế ấy chứ không rảnh để ngồi suy đoán làm thêm những cái người ta không cần cho tốn công, tốn sức.
 
Web KT

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

Back
Top Bottom