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

我一直在尝试在双击单元格时弹出一个形状,并且我编写了一个代码,但它对我不起作用。

我想要的是,每当我双击一个单元格时,Range("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

回答

每当 DoubleClick 在单元格上时,我一直试图弹出一个形状,我写了一个代码,但它对我不起作用。

您必须使用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

编辑

非常感谢它工作得很好,但它没有移动单元格。我的意思是当我点击单元格 A100 时,它仍然保持原样。– Mento 4 分钟前

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

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,然后使用Cancel = True中的第一部分If

  • Yes that is because you are not moving the shape in your code. So when you click on A100, you want to show the shape in B100?

以上是在Excel所需单元格中弹出一个形状的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>