如何引用button名称,以便VBA知道要隐藏哪些列

我有一个100列的工作表,我想只显示基于点击button(表单控件)的某些列。

有一个matrix的button名称和相应的列应显示在一个单独的工作表。

我想我需要识别被点击的button,使用button名称在参考表中find相应的单元格,然后通过循环每个应该隐藏的列来隐藏列。

例如,如果单击名为“Variances”的button,那么我想引用差异行并显示列1,2,3,4,5,6,16

![显示要隐藏的button名称和列的matrix] https://drive.google.com/open?id=0B-gDxLsmXP_IWmVHZVlCa005a0U

我可以静态编写每个button,但我希​​望能够添加button,而无需更改VBA代码。 任何帮助,将不胜感激。 谢谢!

  • 山姆

下面的图片显示了我的Excel表单的设置。

Excel设置

正如蒂姆·威廉斯(Tim Williams)所build议的那样,这两个button都叫做Handler

 Sub Handler() Dim row, column As Integer Dim button As String button = Application.Caller For i = 2 To 3 If Cells(i, 6).Value = button Then row = i End If Next For j = 7 To 8 column = Cells(row, j).Value columns(column).EntireColumn.Hidden = True Next End Sub