【发布时间】:2015-05-06 14:46:38
【问题描述】:
我正在尝试为用户窗体中的一系列 3 个组合框控件制作 VBA 更新行源例程。 这三个组合框都位于名为“frm1”的框架中 组合框的行源是工作表中的三个单独的列。 工作表被命名为“选项”,保存行源的三列中每一列的顶部单元格与引用它的组合框名称相同。 这个想法是我可以在任何组合框的行源中写入额外的行(只需将其键入工作表的右列),然后运行例程,从而自动扩展相关组合框的行源选择。
但是,运行脚本(通过从 UserForm_Activate() 例程调用它)会给我“runtime-error '13': Type mismatch”
有谁能帮帮我吗?
Private Sub UpdateCB()
Dim j As Control
Dim i As Integer
For Each j In frm1.Controls
i = 1
Do Until ThisWorkbook.Sheets("options").Range(j.Name).Offset(i, 0).Value = ""
i = i + 1
Loop
j.RowSource = ThisWorkbook.Sheets("options").Range(j.Name).Resize(i)
Next j
End Sub
【问题讨论】:
-
尝试使用
Dim j As MSForms.Control- 假设表单上只有组合框。 -
错误出现在哪一行?
-
嗨 Rory...谢谢你的建议,但我没有改变任何东西
-
嗨西蒙..错误在 j.rowsource = ...line
-
.
j.rowsource期望range.address而不是range.value或range reference您现在拥有的。所以,在问题行的末尾添加.address
标签: excel combobox resize range vba