在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?