我需要洗掉定義范圍內的所有圖片。最初我嘗試使用:
Dim OBR as Picture
For Each OBR In ActiveSheet.Pictures
If Not Intersect(OBR.TopLeftCell, Range("B2:B7")) Is Nothing Then
OBR.Delete
End If
Next OBR
不幸的是它不作業 - 代碼停止For Each OBR In ActiveSheet.Pictures,沒有提示原因。
我還嘗試了在論壇上找到的代碼:
Dim xPicRg As Range
Dim xpic As Picture
Dim xRg As Range
Set xRg = Range("B2:B7")
For Each xpic In ActiveSheet.Pictures
Set xPicRg = Range(xpic.TopLeftCell.Address & ":" & xpic.BottomRightCell.Address)
If Not Intersect(xRg, xPicRg) Is Nothing Then xpic.Delete
Next
同樣的問題。作業表上有 8 張圖片(和 cca 10 個形狀),其中只有 6 張圖片應該被洗掉。 ActiveSheet.Pictures.count給了我正確的價值 8。當它不適用范圍時,我也嘗試過這樣的事情:
For i = 1 To ActiveSheet.Pictures.count
If Not ActiveSheet.Pictures(i).Name = ob100 Or ActiveSheet.Pictures(i).Name = ob125 Then
ActiveSheet.Pictures(i).Delete
Else
End If
Next i
但它也不起作用,所以我很困惑。請幫助為什么第一個宏不起作用?
excel算作圖片的ob100和ob125其實是checkbox,其余都是插入的圖片。
感謝您的任何幫助。
uj5u.com熱心網友回復:
試試下面的代碼。您可能需要更改代碼中的作業表名稱。
Sub Test()
Dim OBR As Shape
For Each OBR In ThisWorkbook.Worksheets("Sheet1").Shapes
If OBR.Type = msoPicture Then
If Not Intersect(OBR.TopLeftCell, ThisWorkbook.Worksheets("Sheet1").Range("B2:B7")) Is Nothing Then
OBR.Delete
End If
End If
Next OBR
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/536350.html
標籤:擅长VBA
上一篇:Excel-從數字中洗掉空格
