尝试从已填充的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