繁体   English   中英

VBA(Visual Basic):ComboBox(表单控件)-对象不支持此属性或方法

[英]VBA (Visual Basic): ComboBox (Form Control) - Object doesn't support this property or method

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

我在VBA上遇到问题,这使我发疯。 希望有人可以解决我的问题。

我试图引用我在Sheet6中手动添加的ComboBox(Form Control)。 它包含几个项目列表。 然后,我将遍历组合框中的每个项目并对其进行处理。

但是对于我的一生,我无法理解我在做什么错?!

我不断收到运行时错误“ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM