我想要一个按钮,该按钮将隐藏其下面的2行。这个想法是创建一个可以复制到许多位置的按钮,并将其下面的两行隐藏起来。
我创建了一个按钮,将其隐藏在其下方的2行中。但是,当我复制按钮时,所有按钮都隐藏/取消隐藏相同的行。不是相对于自己的行。我不知道为什么。
include
预期结果是我在3个位置都有一个按钮
当前发生的事情是,无论我按哪个按钮,它都只会隐藏和取消隐藏第5和第6行
答案 0 :(得分:0)
建议直接使用对象。 试试这个:
Public Sub ShowHideWeeksData()
Const kShow As String = "Show This Week"
Const KHide As String = "Hide This Week"
Dim sp As Shape, rg As Range, blHide As Boolean
Set sp = ActiveSheet.Shapes(Application.Caller)
With sp
Set rg = .TopLeftCell.Offset(1).Resize(2)
blHide = (.DrawingObject.Caption = KHide)
rg.EntireRow.Hidden = blHide
.DrawingObject.Caption = IIf(blHide, kShow, KHide)
End With
End Sub
注意:此行sp.TextFrame2.TextRange.Text
不适用于我,因此改用了sp.DrawingObject.Caption
。
经过测试,所有复制的buttons
将指向相同的Procedure
,无论每个按钮的名称如何。