Excel 在子对象或函数中将组合框作为参数传递
我在子流程中将组合框作为参数传递时遇到问题。在我使用子流程对每个组合框的内容进行排序之前,我现在尝试的是减少代码 我解释: 该表单包含N个组合框(1,2,…N),每个组合框填充一个表列的内容。例如:Excel 在子对象或函数中将组合框作为参数传递,excel,vba,function,combobox,Excel,Vba,Function,Combobox,我在子流程中将组合框作为参数传递时遇到问题。在我使用子流程对每个组合框的内容进行排序之前,我现在尝试的是减少代码 我解释: 该表单包含N个组合框(1,2,…N),每个组合框填充一个表列的内容。例如: Set NColumn = TStaff.ListColumns("NameStaff").DataBodyRange Me.ComboBox1.List = NColumn.value SortComboBox1 Set IDColumn = TStaff.ListColumns("IDStaf
Set NColumn = TStaff.ListColumns("NameStaff").DataBodyRange
Me.ComboBox1.List = NColumn.value
SortComboBox1
Set IDColumn = TStaff.ListColumns("IDStaff").DataBodyRange
Me.ComboBox2.List = IDColumn.value
SortComboBox2
...
SortComboBoxN
用于对每个组合框的内容进行排序的代码如下:
Private Sub SortComboBox1()
Dim i As Long
Dim j As Long
Dim sTemp As String
Dim LbList As Variant
LbList = Me.ComboBox1.List
For i = LBound(LbList, 1) To UBound(LbList, 1) - 1
For j = i + 1 To UBound(LbList, 1)
If LbList(i, 0) > LbList(j, 0) Then
sTemp = LbList(i, 0)
LbList(i, 0) = LbList(j, 0)
LbList(j, 0) = sTemp
End If
Next j
Next i
Me.ComboBox1.Clear
Me.ComboBox1.List = LbList
End Sub
Private Sub SortComboBox2()
...
End sub
...
Private Sub SortComboBoxN()
...
End sub
我要寻找的是一个子流程,它接收任何组合框(或其内容)作为参数,并避免重复相同的代码来排列每个组合框
我的第一种方法是这样,但出现了“错误424”(需要对象):
模块1:
Public CBox As ComboBox
用户表单(代码)
问题出在哪里??
*如果有人有其他方法,感谢您的建议您的问题在于如何调用子例程
SortCBox (Me.ComboBox1) ' <-- Wrong!
它将按预期通过
微软()提供了简单的解释。@2019:感谢某人的简单方法是接受他们的答案(答案左侧的勾号)。实际上,这适用于整个堆栈交换范围。
SortCBox (Me.ComboBox1) ' <-- Wrong!
SortCBox Me.ComboBox1 ' <-- Right!