Excel 在所需单元格中弹出形状

Excel 在所需单元格中弹出形状,excel,vba,Excel,Vba,我一直试图弹出一个形状,每当双击一个单元格,我写了一个代码,但它不适合我 我想要的是,每当我双击范围(“A1”A100000”)之间的单元格时,图形将弹出,否则它将被隐藏 我的代码: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1:A5000")) Is Nothing Then

我一直试图弹出一个形状,每当双击一个单元格,我写了一个代码,但它不适合我

我想要的是,每当我双击
范围(“A1”A100000”)
之间的单元格时,图形将弹出,否则它将被隐藏

我的代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     If Intersect(Target, Range("A1:A5000")) Is Nothing Then
         ActiveSheet.Shapes("Group 4").Visible = True
     End If
End Sub
我一直试图弹出一个形状每当双击一个单元格,我写了一个代码,但它不适合我

您必须使用
If Not Intersect
检查用户是否单击了
A1:A5000

这就是你想要的吗

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:A5000")) Is Nothing Then
        Shapes("Group 4").Visible = True
    Else
        Shapes("Group 4").Visible = False
    End If
End Sub
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:A5000")) Is Nothing Then
        With Shapes("Group 4")
            .Top = Range("B" & Target.Row).Top
            .Left = Range("B" & Target.Row).Left
            .Visible = True
        End With
    Else
        Shapes("Group 4").Visible = False
    End If
End Sub
编辑


非常感谢它工作得很好,但它不会移动到一个单元格到另一个单元格。我的意思是,当我点击A100单元格时,它仍然保持原来的状态。-曼托4分钟前

这是因为您没有在代码中移动形状。这是您正在尝试的吗

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:A5000")) Is Nothing Then
        Shapes("Group 4").Visible = True
    Else
        Shapes("Group 4").Visible = False
    End If
End Sub
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:A5000")) Is Nothing Then
        With Shapes("Group 4")
            .Top = Range("B" & Target.Row).Top
            .Left = Range("B" & Target.Row).Left
            .Visible = True
        End With
    Else
        Shapes("Group 4").Visible = False
    End If
End Sub

注意:如果您不想在双击
A1:A5000
时光标闪烁,请在
If

的第一部分中使用
Cancel=True
,非常感谢它的工作非常好,但它不会在单元格之间移动。我的意思是,当我单击单元格A100时,它仍然保持原来的状态。是的因为你没有在代码中移动形状。所以当你点击A100时,你想在B100中显示形状吗?正是我想要的。我已经更新了上述答案。你可能需要刷新页面才能看到编辑。非常感谢。我已经搜索了这么长时间,然后终于将其发布在这里。非常感谢@Siddharth Rout