Image 根据单元格值切换隐藏图片
我不是VBA方面的专家,我所知道的都是基于浏览互联网,但一些简单的代码对我来说很有用 我正在根据P52值切换图片,这非常有效,但是我想根据单元格值P117切换不同的图片,而这部分代码对我来说并不适用。我在代码中遗漏了什么Image 根据单元格值切换隐藏图片,image,excel,vba,Image,Excel,Vba,我不是VBA方面的专家,我所知道的都是基于浏览互联网,但一些简单的代码对我来说很有用 我正在根据P52值切换图片,这非常有效,但是我想根据单元格值P117切换不同的图片,而这部分代码对我来说并不适用。我在代码中遗漏了什么 Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False If Target.Address <> "$P$52" Then Exit Su
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Address <> "$P$52" Then Exit Sub
With ActiveSheet
Select Case Target.Value
Case "Horizontal - feet"
.Pictures("B3A").Visible = True
.Pictures("V1A").Visible = False
.Pictures("V1AF").Visible = False
Case "Vertical - simple"
.Pictures("B3A").Visible = False
.Pictures("V1A").Visible = True
.Pictures("V1AF").Visible = False
Case "Vertical - lantern"
.Pictures("B3A").Visible = False
.Pictures("V1A").Visible = False
.Pictures("V1AF").Visible = True
End Select
End With
If Target.Address <> "$P$117" Then Exit Sub
With ActiveSheet
Select Case Target.Value
Case "Right"
.Pictures("3P1").Visible = True
.Pictures("3P1M").Visible = False
Case "Left"
.Pictures("3P1").Visible = False
.Pictures("3P1M").Visible = True
End Select
End With
End Sub
感谢您的帮助。仔细考虑导致您退出sub的if语句的逻辑 如果单元格是P117,您将点击第一条If语句,这将导致您立即退出子单元格。所以你永远也不会得到你的第二张支票 将每个操作的逻辑嵌入我在这里展示的if语句中,如果单元格范围是P52或P117,您将能够做一些事情
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
'only do the following operation if your cell address is P52 - don't exit out
'of your entire code if it's not
If Target.Address = "$P$52" Then
With ActiveSheet
Select Case Target.Value
Case "Horizontal - feet"
.Pictures("B3A").Visible = True
.Pictures("V1A").Visible = False
.Pictures("V1AF").Visible = False
Case "Vertical - simple"
.Pictures("B3A").Visible = False
.Pictures("V1A").Visible = True
.Pictures("V1AF").Visible = False
Case "Vertical - lantern"
.Pictures("B3A").Visible = False
.Pictures("V1A").Visible = False
.Pictures("V1AF").Visible = True
End Select
End With
End If
'you skip to down here if it is NOT P52, which then lets you check again to
'see if it's P117
If Target.Address = "$P$117" Then
With ActiveSheet
Select Case Target.Value
Case "Right"
.Pictures("3P1").Visible = True
.Pictures("3P1M").Visible = False
Case "Left"
.Pictures("3P1").Visible = False
.Pictures("3P1M").Visible = True
End Select
End With
End If
End Sub
如果要进行大量这样的检查,可能还需要为Target.Address创建一个Select case语句。考虑到您在这里提出的要求,很难说哪一个更适合您。非常感谢,这很有帮助。我的喷气式飞机布瑞恩今天早上不想工作:-BTW谢谢你为Toal.Adter选择案例的想法,下次我会考虑的。这两种情况P52和P117将是这张表的唯一情况。@user3541430太好了!如果这回答了你的问题,请随意点击小复选框接受它作为答案-这有助于其他人意识到你的问题得到了回答。