本文最后更新于 2026年5月26日。
在 Excel 中快速清除所有图片,最怕的就是一张一张去点。这里教你两种最快的方法,几秒钟就能搞定,你可以根据自己的习惯选择:
方法一:使用“定位条件”批量删除(最推荐,纯鼠标操作)
这是最直观、不需要写代码的方法:
-
选中任意单元格:在包含图片的表格中任意点击一下。
-
打开定位条件:
-
快捷键:按下键盘上的
Ctrl + G(或者F5),会弹出一个“定位”窗口。 -
点击窗口左下角的 “定位条件” 按钮。
-
-
选择对象:在弹出的列表中,勾选 “对象”,然后点击确定。
-
一键删除:此时,当前工作表中的所有图片(以及图表、形状等对象)都会被自动选中。直接按下键盘上的
Delete或Backspace键,图片就全没了!
⚠️ 注意:这个方法会选中所有的“对象”。如果你表格里有利高科技的“文本框”或“图表”(Chart),它们也会被一起选中。如果不小心删错了,马上按
Ctrl + Z撤销即可。
方法二:使用 VBA 代码(适合多工作表,或超大型文件)
如果你有很多个工作表(Sheet)都有图片,或者文件太大、方法一卡死,用这段极简代码最稳妥:
-
按下
Alt + F11打开 VBA 编辑器。 -
点击顶部菜单的 “插入” -> “模块”。
-
把下面这段代码复制进去:
VBA删除当前sheet图片
Sub DeleteAllPictures()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
shp.Delete
End If
Next shp
End Sub
- 按下
F5键运行代码,当前工作表里的所有图片瞬间就干净了。
删除所有sheets的图片
Sub DeleteAllPicturesInAllSheets()
Dim ws As Worksheet
Dim shp As Shape
Dim count As Long
count = 0
' 循环遍历工作簿中的每一个工作表
For Each ws In ThisWorkbook.Worksheets
' 反向循环删除图片,避免漏删
For i = ws.Shapes.Count To 1 Step -1
Set shp = ws.Shapes(i)
' 只删除图片(保留图表、数据透视表切片器等)
If shp.Type = msoPicture Or shp.Type = msoLinkedPicture Then
shp.Delete
count = count + 1
End If
Next i
Next ws
' 提示处理结果
MsgBox "大功告成!一共删除了 " & count & " 张图片。", vbInformation, "完成"
End Sub