【问题标题】:How to reset picture back from artistic effect in Excel VBA如何在 Excel VBA 中从艺术效果中重置图片
【发布时间】:2021-06-11 01:19:32
【问题描述】:
我想弄清楚一些事情。我的 Excel 文件中有一张图片。每当我点击它时,我希望它变成灰度,所以我使用以下 vba 代码:
Sheets("Dashboard-3").Shapes("ReportsIcon").Fill.PictureEffects.Insert msoEffectPencilGrayscale
而且效果很好。但是当我再次单击时,我希望它恢复到原来的颜色和格式(这是 Excel 中的 Reset Picture 按钮)。不幸的是,录制宏没有得到。我使用msoEffectNone、msoEffectTypeNone,但不起作用。也搜索了很多,但似乎没有人试图重新设置艺术效果。有人知道我应该使用什么吗?
【问题讨论】:
标签:
excel
vba
formatting
shapes
effect
【解决方案1】:
您不需要设置不同的效果,您必须使用Delete 从分配给图片的 PictureEffects 列表中删除它。下面的 Sub 显示了如何切换它(如果存在,则将其删除,否则应用)
Sub toggleEfect(sh As Shape, efecttype As Long)
Dim fe As PictureEffect, found As Boolean
For Each fe In sh.Fill.PictureEffects
If fe.Type = efecttype Then
fe.Delete
found = True
End If
Next
If Not found Then sh.Fill.PictureEffects.Insert efecttype
End Sub
你可以调用它
toggleEfect Sheets("Dashboard-3").Shapes("ReportsIcon"), msoEffectPencilGrayscale