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

在VBA中,我正在编写一个代码,用于基于用户窗体中的初始input收集信息。

从最初的入口点,我想要代码出去find相应的数据并添加它。 我有这一切运作良好。

但是我正在收集数据透视表中的数据,如果数据透视表打开,它将返回空格,“空白”和“总数”,这是我想摆脱的

我目前的代码是:

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在那里,看看我的价值观是否正确,他们是。

当你testing存储在ComboBox中的值时,你只需要.List(i)

此外,我改变了第二个循环的“方向” (详见第二条评论) ,以避免丢失物品。

这里是你修改的代码:

 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