阅: 928 | 回: 2

-
积分:9
-
财富值:2
-
身份:普通用户
详细BUG原因已在旧贴中说明:就是直接点删除对象,没有反应,全选表格之后点删除对象会将批注一起删除。
虽然用VBA可以解决问题,但用习惯了方方格子用起来比较方便,尤其是聚光灯,虽然因为使用EXCEL较简单应用并没有充值会员,但仍希望能解决这个问题。
附网上找到的VBA删除对象代码:
Sub 删除对象()
Dim sheet As Worksheet
For Each sheet In Worksheets
sheet.DrawingObjects.Delete
Next sheet
End Sub
VBA查询对象数量代码如下:
Sub CountShapes()
Dim n As Double
Dim ws As Worksheet
Dim Content As String
For Each ws In Worksheets
n = ws.Shapes.Count
Content = Content & "工作表" & ws.Name & " 有" & n & " 个对象" & vbCrLf
Next
MsgBox Content
End Sub
以上可以正常解决问题,以下为CHATGPT生成代码,会象方方格子一样删除对象:
Sub DeleteObjects()
'定义变量
Dim objCount As Integer
Dim i As Integer
Dim response As Integer
'查询对象数量
objCount = ActiveSheet.Shapes.Count
'如果没有对象,则提示无对象
If objCount = 0 Then
MsgBox "无对象可删除!", vbInformation
Exit Sub
End If
'弹出确定和取消选项框
response = MsgBox("共有 " & objCount & " 个对象,是否全部删除?", vbYesNo + vbQuestion, "删除对象")
'如果选择确定,则删除对象
If response = vbYes Then
On Error Resume Next
For i = objCount To 1 Step -1
ActiveSheet.Shapes(i).Delete
Next i
On Error GoTo 0
MsgBox "已删除 " & objCount & " 个对象。", vbInformation
'如果选择取消,则退出子程序
Else
Exit Sub
End If
End Sub
Sub DeleteObjects()
'定义变量
Dim objCount As Integer
Dim i As Integer
Dim response As Integer
'查询对象数量
objCount = ActiveSheet.Shapes.Count
'如果没有对象,则提示无对象
If objCount = 0 Then
MsgBox "无对象可删除!", vbInformation
Exit Sub
End If
'弹出确定和取消选项框
response = MsgBox("共有 " & objCount & " 个对象,是否全部删除?", vbYesNo + vbQuestion, "删除对象")
'如果选择确定,则删除对象
If response = vbYes Then
On Error Resume Next
For i = objCount To 1 Step -1
ActiveSheet.Shapes(i).Delete
Next i
On Error GoTo 0
MsgBox "已删除 " & objCount & " 个对象。", vbInformation
'如果选择取消,则退出子程序
Else
Exit Sub
End If
End Sub
我的个性签名