2013-05-16 29 views
0

我有一个带有链接到隐藏单元格的下拉列表的Excel 2010表单。下拉列表默认不填充(链接的单元格为空)。我也有一个名为“VIS”的ActiveX命令按钮,它根据用户选择打开一个网站,但我不希望按钮可见,直到单元J1有一个值(J1链接到下拉列表)。我如何使按钮隐藏,如果J1.value = ""和可见,如果它是非空?如果更容易,我还在单元M1 "=IF(J1="",TRUE,FALSE)"中有一个公式,以便能够在VBA中使用true/false参数。谢谢。如何隐藏基于单元格内容的VBA的ActiveX命令按钮

回答

2

不是说这是最好的方式,但这里是一个办法......这样使用worksheet_calculate事件:

Private Sub Worksheet_Calculate() 
VIS.Visible = Not Range("M1").Value 
End Sub 

我用这种方法去,因为它与您的电流片的设计和逻辑适合你已经布局。如果您想要另一种方法,我会非常乐意提供一种方法。无论哪种方式,我希望它能让你朝着正确的方向前进!

好吧,我无法抗拒。下面是一个使用Worksheet_Change事件的另一种方法:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
     If Target.Address = "$J$1" Then VIS.Visible = Application.WorksheetFunction.CountA(Range("J1")) 
    Application.EnableEvents = True 
End Sub 

的worksheet_change事件的好处是,你可以摆脱你M1具有式的。根据您的图纸布局,Application.EnableEvents = False可能不是必要的..但​​并不真正伤害它在那里以防万一。

+0

感谢您的帮助。 Worksheet_Calculate()子程序正是我所需要的。虽然似乎无法让Worksheet_Change子类去做任何事情。非常感谢。 –

相关问题