【发布时间】:2021-04-11 04:38:24
【问题描述】:
Sub Auto_Open()
Dim ComboBox2 As Object
Dim ws As Worksheet
Dim rng As Range
Const cCount As Long = 2
Set ws = ActiveSheet(1)
With ws
Set rng = .Range("H10")
Set ComboBox2 = .Shapes.AddFormControl(xlDropDown, _
Left:=rng.Left, _
Top:=rng.Top, _
Width:=rng.Width, _
Height:=rng.Height)
With ComboBox2
.ControlFormat.DropDownLines = 100
.Name = "myCombo"
End With
With Worksheets(5)
Dim erg As Range: Set erg = .Range("D6", .Range("D" & .Rows.Count) _
.End(xlUp)).Resize(, cCount)
Worksheets(1).ComboBox2.ColumnCount = cCount
Worksheets(1).ComboBox2.List = erg.Value
End With
End Sub
此代码在工作簿中。 当有人打开此文件然后从工作表 5 填充它时,我正在尝试创建一个组合框。 它没有发生,没有创建任何内容,我也没有收到任何错误。
【问题讨论】:
-
我更新了原帖。
-
您是手动打开工作簿还是通过代码打开工作簿?另外,您将此代码放在哪里?如果代码放置在模块中并手动打开,则
Auto_Open将起作用,否则它将不起作用,因此建议在 thisworkbook 模块中使用Workbook_Open。如果Auto_Open会运行,您将在Set ws = ActiveSheet(1)上遇到错误:)