我刚从工具>中添加了日历12.0附加控制。日历工作正常,我将日期吐出到正确的单元格。然而,我想要的是真正使命令按钮显示日历,因为我的表单包含一堆字段,我不想用这个日历搞砸表单。我尝试过Calendar1.show,但.show不是一个选项。
所以最终我需要一个命令按钮来显示日历,允许用户选择(我有),然后关闭日历。有帮助吗?我提前谢谢你!!
bdubb
答案 0 :(得分:1)
在此代码段中,CommandButton1来自ActiveX控件,而不是表单控件。它要求您单击按钮以显示日历(在您单击的按钮旁边弹出),然后再次单击该按钮以隐藏日历。
Private Sub CommandButton1_Click()
If Not Calendar1.Visible Then
Calendar1.LinkedCell = "A1"
Calendar1.Top = Sheet1.CommandButton1.Top
Calendar1.Left = Sheet1.CommandButton1.Left + Sheet1.CommandButton1.Width + 1
Calendar1.Visible = True
Else
Calendar1.Visible = False
End If
End Sub
显然,不同的按钮需要不同的链接单元格,但它确实意味着您可以拥有一个日历控件,它由多个按钮显示(如果这是您想要的)。
不幸的是,看起来你无法在任何事件触发时隐藏控件(例如AfterUpdate)。它只是不想消失!!
答案 1 :(得分:0)
隐藏/关闭日历控件仍然不起作用(新的一年2015 =差不多四年后),但我想我找到了一个解决方法,在触发事件后隐藏控件。
我有一个Calendar1_AfterUpdate(),它在Calendar1_Click()之前启动。代码直接放在工作表中,而不是放在模块中。
Private Sub Calendar1_AfterUpdate()
Range("a1") = Me.Calendar1.Value
' Next two lines does not work within AfterUpdate
' When running step by step it seems to work but the control is
' visible when End Sub has run
Me.Calendar1.Visible = True
Me.Calendar1.Visible = False
End Sub
为此,我简单地添加了
Private Sub Calendar1_Click()
Me.Calendar1.Visible = True
Me.Calendar1.Visible = False
End Sub
请注意,出于某种原因,控件必须在隐藏之前显示。
为什么它不直接在Calendar1_AfterUpdate()中起作用对我来说是一个谜。
下一个问题是当我移除鼠标时隐藏控件。鼠标事件在日历控件中似乎是不可能的......