我发现让控件在 Excel 中的 Frame 中可见的唯一方法是使用鼠标右键单击 Edit 来添加它们。但是当我这样做时,控件没有在 VBA 中列出。
这些是工作表上的控件:
第一个选项按钮是 optToday,第一个文本框 txtToday,第二个选项按钮 optDate,第二个文本框 txtDate。框架是groupDate,按钮是cmdGetWeek,第三个文本框是txtWeekofMonth。
但这就是 VBA 中出现的全部内容:
当用户单击按钮时,我希望调用一个函数来计算月份中的星期几。如果用户选择今天,这是将发送到函数的日期。如果用户选择了将被发送的不同日期。
我到目前为止的代码是这样的:
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
我收到“If (optToday.Value = True) Then”的运行时错误“424”。
访问框架控件的正确方法是什么?
最佳答案
不清楚您添加的是表单框架还是 ActiveX 框架。
默认情况下,可以从“插入”菜单插入表单框架:
为了能够在 VBA 中处理控件事件,您需要使用 Frame 控件的 ActiveX 形式...但默认情况下,Frame ActiveX 控件在“插入”菜单上不可见。您需要按更多控件按钮:
然后从控件列表中选择 Microsoft Forms 2.0 Frame Control:
然后,您需要确保添加选项按钮和其他控件的 ActiveX 表单...然后,所有控件(及其事件),包括框架和选项按钮都将出现在工作表的事件下拉列表中.
关于excel - 在 VBA 中访问 Microsoft Forms 2.0 框架控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48797701/