wps电子表格(xlsx)在excel打开时,多余图形(shapes)的处理

背景:

  1. win10, excel 打开 wps 生成的 xlsx文档;

  2. 文档中有多余的图形,经检测为shape大类;

  3. 文档中可见的图形可以全选后删除; 但是不可见部分仍然存在;

  4. vba删除时,可以直接循环删除,类似 shape.delete;

  5. vba删除前,如果逐一选择(shape.select)以便查看,则出现多种错误(vba运行异常),但都是运行时错误

错误记录:

  1. 类型多样:用shape.name查看,有以下类别:

1)comment;在visible=false情况下,错误信息为-2147467259-自动化 (Automation) 错误

2)代表picture的长串字母-数字;

3)host control x;在visible=false情况下,错误信息为-2147024809-请求的图形已被锁定供选择

  1. 经检查,图形(shapes)中有一部分是不可见的,无法选中即不能用shape.select选择;

  2. 将不可见图形设置为可见后,则问题解决

解决思路及代码如下:

  1. 思路,倒循环, 设置为可见,删除

  2. 代码如下:

Public Sub shape_remove()

'wps xlsx文档,用excel打开后,有多余的图形(shape)出现而在wps中没有

'try to keep previous err file

If ActiveSheet.Shapes.Count = 0 Then

Debug.Print "no shapes"

End

End If

'test only

Open ActiveWorkbook.Path & "\err.txt" For Output As #1

'main

For i = ActiveSheet.Shapes.Count To 1 Step -1

Set sp = ActiveSheet.Shapes(i)

On Error Resume Next

sp.Select

Print #1, "i=" & i, "shape name:" & sp.Name

Print #1, "shape type name:" & TypeName(sp)

Print #1, "visible=" & CBool(sp.Visible)

If Err.Number <> 0 Then

Print #1, "Err:" & Err.Number & "-" & Err.Description

If sp.Visible = 0 Then

Print #1, i & " not visible."

sp.Visible = True

Print #1, "set to visible"

i = i + 1

sp.Select 'for shape details check

End If

Else

Print #1, "selected and deleted"

Selection.Delete

End If

On Error GoTo 0

Print #1, Chr(13)

Next

'test only

Close #1

End Sub

相关推荐
福兮说3 小时前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
慧都小妮子19 小时前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机
兔叭_哥1 天前
WPS 阿里V3 全流程逆向分析与求解
网络·wps
SunnyDays10111 天前
Java 设置 Excel 数据验证:整数、日期、文本长度、下拉列表和时间
java·excel·数据验证·下拉列表
Metaphor6921 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
用户0332126663672 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
企业数字化笔记2 天前
固定资产Excel批量导入怎么防重复?资产编码、重复检查和错误回执
java·后端·excel
CORNERSTONE3652 天前
低代码开发有哪些应用场景?
低代码·excel·erp·mes·企业数字化
小葱炖豆腐3 天前
python绘制excel折线图
python·excel·numpy·pandas·matplotlib
cspttty3 天前
2026年财务分析岗JD中的Excel、SQL、BI与业务分析要求
大数据·sql·excel