【发布时间】:2017-10-27 17:39:24
【问题描述】:
我正在尝试根据正在查看的特定工作表上的列数在 Excel 用户窗体中创建可变数量的控件(组合框)。理想情况下,我想删除现有的并在运行时创建新的,而不是创建 100 个左右,只是在可见和不可见之间来回切换。我目前拥有的将创建一个组合框和循环,但它只创建 1。看起来组合框被覆盖并以创建的最后一个组合框结束。有什么建议可以在运行时使用相同的用户表单吗?
Private Sub CommandButton1_Click()
Dim cCont As New Control
Dim ws As Worksheet
Dim lc As Long
Dim i As Long
Set ws = Loan_Data
lc = Loan_Data.Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lc
Set cCont = Me.Controls.Add("Forms.CommandButton.1", "NewCombo" & i)
With cCont
.Caption = cCont.Name
.AutoSize = True
.Visible = True
End With
Next i
结束子
【问题讨论】:
-
你确定你不只是创建一堆控件都在同一个位置,最后一个在上面吗?
-
看起来你正在创建按钮,但它是在彼此之上创建它们;从而使它看起来只是在创建一个。创建后您需要更新位置
-
好吧,我觉得自己很笨。谢谢大家