在EXCEL中的图片,能否按条件显示?

在EXCEL中插入了一张图片,能否要求这张图片在A1单元格等于1时就显示,等于0时就不显示?这个用宏怎么写?... 在EXCEL中插入了一张图片,能否要求这张图片在A1单元格等于1时就显示,等于0时就不显示?
这个用宏怎么写?
展开
 我来答
black8310
2016-01-14 · TA获得超过13.5万个赞
知道大有可为答主
回答量:1.9万
采纳率:68%
帮助的人:4649万
展开全部
在EXCEL中的图片,能按条件显示,前提是先要将图片的名字先变号。然后用下面的函数:

注:引号里面的为条件。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, ML, MT, MW, MH
On Error Resume Next
ActiveSheet.DrawingObjects.Delete
If Cells(1, 1) = "亚特兰大" Then 'Cells(1, 1):括号前面数字表示行号、后面数字表示列号 ;
Sheets(2).Shapes(1).Copy 'Sheets(2)表示工作表“Sheet2”;Shapes(1)表示工作表“Sheet2”里的第一个插入的图片,即“图片1”
Set rng = Cells(1, 2)
With rng
ML = .Left
MT = .Top
MW = .Width
MH = .Height
.Select
ActiveSheet.Paste
End With
End If
With Selection.ShapeRange
.LockAspectRatio = msoFalse '取消锁定纵横选项
.Left = ML
.Top = MT
.Width = MW
.Height = MH
End With
If Cells(2, 1) = "博洛尼亚" Then '要继续增加,就从这里复制
Sheets(2).Shapes(2).Copy
Set rng = Cells(2, 2)
With rng
ML = .Left
MT = .Top
MW = .Width
MH = .Height
.Select
ActiveSheet.Paste
End With
End If
With Selection.ShapeRange
.LockAspectRatio = msoFalse '取消锁定纵横选项
.Left = ML
.Top = MT
.Width = MW
.Height = MH
End With '到这里结束,里面的图片名和行号、列号自己改就是了。
End Sub
万年金刚钻
推荐于2016-01-20 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3479万
展开全部

用宏写是没问题,只是楼主要决定何时触发,比如,设定在工作簿打开和A1 change事件发生时触发运行:,请下载参考附件


新建模块,插入代码:

Sub ProcessPic()
ThisWorkbook.Sheets(1).Shapes(1).Visible = ThisWorkbook.Sheets(1).Cells(1, 1)
End Sub

工作簿打开事件

Private Sub Workbook_Open()
ProcessPic
End Sub

Sheet1 Change事件

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then ProcessPic
End Sub


追问
A1单元格的数字可变。我要求显示图片时,只要在A1输入1,不需要显示时,输入0.
追答
你有没有试过我上传的附件?试过就知道完全满足你的想法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
康onelove
2015-03-24 · 超过11用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:16.3万
展开全部
Sub tesxt()
If [a1] = 1 Then
Sheet1.Shapes("图片名").Visible = True
Else
Sheet1.Shapes("图片名").Visible = False
End If
End Sub
追问
按此法没有达到目的!
追答
你改一下把这个代码改为selection时间例如:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [a1] = 1 Then
Sheet1.Shapes("picture 1").Visible = True
Else
Sheet1.Shapes("picture 1").Visible = False
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心是莲花合
2015-03-24
知道答主
回答量:33
采纳率:0%
帮助的人:9.2万
展开全部
要用到宏才行吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式