尝试从已填充的Combobox VBA中删除特定项目

时间:2015-07-15 12:53:52

标签: excel vba excel-vba combobox

在VBA中,我正在编写一个代码,根据用户表单中的初始输入收集信息。

从初始入口点开始,我希望代码出去找到相应的数据并添加它。我一切都运作良好。

但我正在从数据透视表中收集数据,如果数据透视表已打开,则返回""空格,"(空白)"和#34; Grand Total",我想摆脱

我的当前代码是:

lcomboCount = Sheets(pt).PivotTables("Pivottable1").TableRange2.Rows.Count
For i = 1 To lcomboCount
datapoint = Sheets(pt).PivotTables("PivotTable1").PivotFields("combo").LabelRange.Offset(i, 0).Value
UserForm1.ComboBox.AddItem Sheets(pt).PivotTables("PivotTable1").PivotFields("combo").LabelRange.Offset(i, 0)
Next i
For i = 0 To Me.ComboBox.ListCount - 1
If Me.ComboBox = "" Or Me.ComboBox = "Grand Total" Or Me.ComboBox = ("(blank)") Then
    Me.ComboBox.RemoveItem (i)
End If
Next i

我有一个Msgbox在那里,看看我的价值观是否正确,他们是。

1 个答案:

答案 0 :(得分:3)

当您测试存储在ComboBox中的值时,您只需要.List(i)

我也改变了#34;方向"第二个循环的(请参阅第二条评论的详细信息)以避免遗漏项目。

以下是您修改过的代码:

lcomboCount = Sheets(pt).PivotTables("PivotTable1").TableRange2.Rows.Count
For i = 1 To lcomboCount
    datapoint = Sheets(pt).PivotTables("PivotTable1").PivotFields("combo").LabelRange.Offset(i, 0).Value
    UserForm1.ComboBox.AddItem datapoint
Next i
For i = Me.ComboBox.ListCount - 1 To 0 Step -1
    If Me.ComboBox.List(i) = "" Or Me.ComboBox.List(i) = "Grand Total" Or Me.ComboBox.List(i) = ("(blank)") Then
        Me.ComboBox.RemoveItem (i)
    End If
Next i
相关问题