在VBA

时间:2018-02-14 23:04:57

标签: excel vba controls

我发现在Excel中的框架中显示控件的唯一方法是使用鼠标右键单击编辑来添加控件。但是当我这样做时,控件没有在VBA中列出。

这些是工作表上的控件:

Controls

第一个选项按钮是optToday,第一个文本框txtToday,第二个选项按钮optDate,第二个文本框txtDate。框架是groupDate,按钮是cmdGetWeek,第三个文本框是txtWeekofMonth。

但这就是VBA中出现的一切:

Controls Missing

我希望调用一个函数来计算用户点击按钮时的星期几。如果今天选择的用户是这个将被发送到该功能的日期。如果用户选择了将要发送的其他日期。

到目前为止我对代码的了解是:

Private Sub cmdGetWeek_Click()
Dim selectedDate As Date
Dim calcWeekNum

If (optToday.Value = True) Then
    selectedDate = txtToday.Value
Else:
    selectedDate = txtDate.Value
End If
MsgBox ("Selected: " & selectedDate)
calcWeekNum = WeekOfMonth(selectedDate) End Sub 

我遇到了运行时错误' 424' for" if(optToday.Value = True)然后"。

访问框架控件的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

目前还不清楚您是否添加了表格框架或ActiveX框架。

默认情况下,表单框架可以从“插入”菜单中插入:

Insert Menu

为了能够在VBA中处理控件事件,您需要使用Frame控件的ActiveX窗体...但默认情况下,Frame ActiveX控件在“插入”菜单上不可见。您需要按“更多控件”按钮:

enter image description here

然后从控件列表中选择Microsoft Forms 2.0 Frame Control:

enter image description here

然后您需要确保添加选项按钮和其他控件的ActiveX表单...所有控件(及其事件),包括框架和选项按钮将出现在工作表的事件下拉。