当range.cells.count = 1时,combobox列表

当范围只有一个单元格时,我很难从一个范围内填充一个combobox。

我有以下代码:

Private Sub cboEquip_Change() Dim SourceData As Variant Dim col As Variant Dim rng As Range Set ws = Sheets("Details") On Error Resume Next 'Matches text from cboEquip to appropriate column in Details sheet col = WorksheetFunction.Match(Me.cboEquip.Value, ws.Range("1:1"), 0) 'Sets number of items in list lr = ws.Cells(ws.Rows.Count, col).End(xlUp).Row 'Chooses correct range Set rng = Sheets("Details").Range(Sheets("Details").Cells(2, col), Sheets("Details").Cells(lr, col)) 'Changes cboUnit based on changes from cboEquip SourceData = rng.Value With Me.cboUnit .Clear .List = SourceData .ListIndex = 0 End With End Sub 

代码按照devise工作,当范围cell.count> 1时,根据来自另一个combobox的input填充combobox列表,但是当它从一个单元格拉出的范围内,它将不会填充列表。

我已经尝试通过一行偏移范围来解决这个问题,然而空白单元格是当前单元格数量大于1的所有范围的选项。

有没有办法从一个单一的单元格范围填充combobox?

我想因为SourceData不是只有一个值的数组,你需要testing它。 尝试这个:

 With Me.cboUnit .Clear If IsArray(sourceData) Then .List = sourceData Else .AddItem sourceData End If .ListIndex = 0 End With