Excel 点击单元格,通过链接图片显示数据范围
第一次发帖,希望这一切都有意义。我在excel中创建了一个显示88行的图形。在另一个工作表中,有一行数据记录了当在图形上单击某一行时,每一行上的内容我希望从另一个工作表中弹出相应的数据 我通过在每一行上制作一个透明的按钮/形状来隐藏和显示链接图像,从而实现了这一点。然而,我不得不为每行创建一个单独的按钮和宏,每行有100多行,这似乎效率很低。这是我使用的代码:Excel 点击单元格,通过链接图片显示数据范围,excel,vba,Excel,Vba,第一次发帖,希望这一切都有意义。我在excel中创建了一个显示88行的图形。在另一个工作表中,有一行数据记录了当在图形上单击某一行时,每一行上的内容我希望从另一个工作表中弹出相应的数据 我通过在每一行上制作一个透明的按钮/形状来隐藏和显示链接图像,从而实现了这一点。然而,我不得不为每行创建一个单独的按钮和宏,每行有100多行,这似乎效率很低。这是我使用的代码: Sub LINE1A1() With ActiveSheet.Shapes("Rectangle 9").TextFrame2
Sub LINE1A1()
With ActiveSheet.Shapes("Rectangle 9").TextFrame2.TextRange.Characters
If .Text = "Hide" Then
.Text = "Show"
ActiveSheet.Shapes("Picture 3").Visible = False
Else
.Text = "Hide"
With ActiveSheet.Shapes("Rectangle 9")
ActiveSheet.Shapes("Picture 3").Left = .Left + .Width
ActiveSheet.Shapes("Picture 3").Top = .Top + .Height
ActiveSheet.Shapes("Picture 3").Visible = True
End With
End If
End With
End Sub
实现这一目标的更好方法是什么?侧面不使用链接图像作为数据,数据范围可能会发生变化,因为每行可能有超过1行的数据 您可以使用宏创建这些按钮或形状(如您所说,例如100个按钮),并使用宏移动它们,使它们位于正确的位置。它们将使用相同的宏。它会根据按钮的位置做不同的事情,或者根据它的名称做更好的事情 有一个很好的教程。
下面是一个简单的示例,其中一个公共子应用程序使用
Application.Caller
找出触发它的形状
Sub Tester()
Dim s As Shape, c, s2 As Shape
c = Application.Caller '<< name of your clicked shape
Debug.Print c
Set s = ActiveSheet.Shapes(c) '<< the clicked shape
With s.TextFrame2.TextRange.Characters
'here you need some way to transform the name of the clicked
' shape to get the name of the other shape to be shown/hidden/moved
Set s2 = ActiveSheet.Shapes(c & "_linked")
s2.Visible = (.Text = "Show")
.Text = IIf(.Text = "Show", "Hide", "Show") 'toggle text
End With
End Sub
子测试仪()
尺寸s为形状,c为形状,s2为形状
c=Application.Caller'哪个项目是“矩形9”?我也没有在你的截图中看到任何显示/隐藏文本。要显示的行如何与单击的行相关?如果我们有更多的上下文,似乎有更好的方法来实现这一点。我的不好,因此有一个透明的矩形,文本与它所放置的单元格(线)的颜色相匹配,因此它实际上是不可见的。我将用更多的上下文来编辑主要的帖子。谢谢你的回复@TimWilliams