VBA (Visual Basic): ComboBox (Form Control) - Object 不支持此属性或方法



刚刚注册!(即使我已经使用该网站几年了,哈哈!

我在 VBA 上遇到了一个问题,它让我发疯。希望有人能解决我的问题。

我正在尝试引用我在 Sheet6 中手动添加的组合框(表单控件(。它包含几个项目列表。然后我将循环浏览组合框中的每个项目并用它做一些事情。

然而,对于我的生活,我无法理解我做错了什么?!

我不断收到运行时错误"438":

对象不支持此属性或方法

这是运行时错误发生的行:

Public Sub ReferralSummaries()
'Stop screen updates.
Application.ScreenUpdating = False
'Method Variables
Dim Lstrw As Long
Dim CurrentWb As Workbook
Dim ReferralSheet As Worksheet
Dim ResultsSheet As Worksheet
Dim ReferralSheetCBox As Object
'Initialize Variables
Set CurrentWb = ThisWorkbook
Set ReferralSheet = CurrentWb.Sheets("Referral Breakdowns")
Set ResultsSheet = CurrentWb.Sheets("Results")
Set ReferralSheetCBox = Worksheets(6)
'Check Date column and update accordingly
Call Update_Date_Column(ReferralSheet, ResultsSheet)
For i = 0 To ReferralSheetCBox.ComboBox1.Items.Count - 1 **(ERROR TRIGGERED HERE).**

请提供任何帮助!

亲切问候忍者

我认为你应该使用

Set ReferralSheetCBox = Worksheets(6).Shapes("ComboBox1")

然后,您可以通过其ControlFormat属性访问其属性,例如:

Dim nItems As Long
nItems = ReferralSheetCBox.ControlFormat.ListCount

因此,您显示的代码最后一行将是

For i = 0 To ReferralSheetCBox.ControlFormat.ListCount - 1
可以通过

强键入ReferralSheetCBox作为DropDown(这是一种包含 ComboBox 的隐藏类型(来使用早期绑定:

Dim ReferralSheetCBox As Excel.DropDown

然后将引用设置为形状的DrawingObject

Set ReferralSheetCBox = Sheet6.Shapes("ComboBox1").DrawingObject

然后,您可以调整代码以:

For i = 0 To ReferralSheetCBox.ListCount - 1

相关内容

最新更新