excel - 在 VBA 中访问 Microsoft Forms 2.0 框架控件

标签 excel vba controls

我发现让控件在 Excel 中的 Frame 中可见的唯一方法是使用鼠标右键单击 Edit 来添加它们。但是当我这样做时,控件没有在 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 

我收到“If (optToday.Value = True) Then”的运行时错误“424”。

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

最佳答案

不清楚您添加的是表单框架还是 ActiveX 框架。

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

Insert Menu

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

enter image description here

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

enter image description here

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

关于excel - 在 VBA 中访问 Microsoft Forms 2.0 框架控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48797701/

相关文章:

ios - iPad应用程序设计: sync with Excel file

java - ETL 将大型 Excel 加载到 Oracle DB

excel - `Run-time error 6: Overflow` 如果文件名 > 2139999999

wpf - 在哪里可以找到免费的 WPF 控件和控件模板?

c# - 我能否使 NumericUpDown 控件的最大值不受限制,而不是在其 Maximum 属性中指定一个值?

Java Excel API JXL - 读取格式为时间的单元格

excel - 包含逗号字符的数据验证

.net - 在 .NET 中模拟 VBA 算法

excel - 无密码取消工作簿保护

.net - Winforms ComboBox SelectedValueChange 事件