如何解决如何在 Excel VBA 中从艺术效果重置图片
我想弄清楚一些事情。我的 Excel 文件中有一张图片。每当我点击它时,我希望它变成灰度,所以我使用以下 vba 代码:
Sheets("Dashboard-3").Shapes("ReportsIcon").Fill.PictureEffects.Insert msoEffectPencilGrayscale
而且它工作得很好。但是当我再次单击时,我希望它恢复到原来的颜色和格式(这是 Excel 中的 Reset Picture
按钮)。不幸的是,录制宏并没有做到这一点。我使用 msoEffectNone
、msoEffectTypeNone
,但不起作用。也搜索了很多,但似乎没有人试图重新设置艺术效果。有没有人知道我应该使用什么?
解决方法
您不需要设置不同的效果,您必须使用 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。