Inquiridor
Como eu removo itens em um ComboBox?

Pergunta
-
Olá, tenho o seguinte problema. Criei um ComboBox a partir de uma coluna em que algumas células estavam mescladas. Usei ComboBox1.AddItem ActiveCell.Offset(i, 0).FormulaR1C1 para adicionar os itens; no entanto, ao encontrar células mescladas, ele adiciona um item em branco.
Para remover os itens em branco, tentei o seguinte código:
No entanto, ele não remove todos; por algum motivo deixa alguns. Além disso, aparece uma série de itens em branco ao final do combobox. Como resolver este problema?'remove itens vazios For i = 0 To ComboBox1.ListCount - 1 If ComboBox1.List(i) = "" Or IsNull(ComboBox1.List(i)) Then ComboBox1.RemoveItem i End If Next
Todas as Respostas
-
-
Benzadeus, muito obrigado; isso resolveu os espaços em branco, embora apareçam muitos espaços em branco ao fina do ComboBox. Talvez seja porque o for que atribui os itens ao ComboBox vai de 1 até um número maior que a quantidade de linhas na coluna A. No entanto, não consigo acertar este número porque retiro a quantidade de linhas de
While ActiveCell.MergeCells = True count = count + 1 ActiveCell.Offset(count, 0).Select Wend numlin = ActiveCell.Row
uma vez que, na coluna considerada, há apenas células mescladas de tamanhos distintos.
Ainda assim, obrigado.
-
"Talvez seja porque o for que atribui os itens ao ComboBox vai de 1 até um número maior que a quantidade de linhas na coluna A."
Essa suposição não é correta porque efetivamente só é adicionado ao ComboBox células que possuem comprimento maior que 0.
Se existem itens em branco sendo adicionados, é porque existem células que possuem um valor igual à um ou mais espaços em branco. Visualmente falando, uma célula com um espaço em branco e uma célula com valor vazio não apresentam diferença, mas a primeira é adicionada ao ComboBox. É esse seu caso?
Felipe Costa Gualberto - http://www.ambienteoffice.com.br -
Pode ser esse o caso, no entanto, se for isso mesmo, todas as vezes que um usuário digitasse um espaço sem querer na mesma coluna teríamos itens em branco no combobox, "estragando" o programa. Talvez se existisse uma função do tipo Len() que verificasse se os dados são válidos...
-
-
Voltei a este problema. Esta parte do código está dando erro. Vou disponibilizar um exemplo de como é esta parte do banco de dados. Mas como faço isso?
' REMOVE ITENS VAZIOS DO COMBOBOX For i = 1 To ComboBox1.ListCount - 1 If Len(ComboBox1.List(i)) = 0 Then ComboBox1.RemoveItem i End If Next