我在想办法。我的Excel文件中有一张图片。每当我点击它时,我都希望它变成灰度,所以我使用以下vba代码:
Sheets("Dashboard-3").Shapes("ReportsIcon").Fill.PictureEffects.Insert msoEffectPencilGrayscale而且效果很好。但是当我再次单击时,我希望它回到原来的颜色和格式(这是Excel中的Reset Picture按钮)。不幸的是,录制宏不明白这一点。我使用msoEffectNone,msoEffectTypeNone,但是不工作。也搜索了很多,但似乎没有人试图重新设置艺术效果回来。有人知道我该用什么吗?
发布于 2021-06-10 17:13:20
您不需要设置不同的效果,您必须使用Delete从分配给图片的PictureEffects列表中删除它。下面的子程序展示了如何切换它(如果它存在,它将被移除,否则将被应用)
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"), msoEffectPencilGrayscalehttps://stackoverflow.com/questions/67925123
复制相似问题