当select选项为空时,删除VBA单元格条目中的逗号

时间:2012-10-30 08:46:34

标签: excel vba

我想将来自三个不同下拉列表的数据插入到我的电子表格中,但我遇到了一些困难。有三个下拉列表称为 cbo_fac1 cbo_fac2 cbo_fac3 。以下是用例:

用例1

cbo_fac1 - User selects 'No Preference' 
cbo_fac2 - User selects 'No Preference' 
cbo_fac3 - User selects 'No Preference' 

在这种情况下,我只想将No Preference插入电子表格单元格。到目前为止,处理得很好。

用例2& 3

cbo_fac1 - User does not select 'No Preference' 
cbo_fac2 - User does not select 'No Preference' 
cbo_fac3 - User selects 'No Preference' 

cbo_fac1 - User does not select 'No Preference' 
cbo_fac2 - User selects 'No Preference' 
cbo_fac3 - User selects 'No Preference' 

在这两种情况下,我都希望跳过“无首选项”,并且只插入不是No Preference的值。

我试过这个,但不幸的是系统插入了我想省略的逗号。因此,如果用户选择PC,DVD,选项,而不是使用,DVD,PCNo Preference这样的条目,我希望将其结束并使其看起来像PC, DVD或{{1删除与空白条目关联的逗号。

我希望我的解释足够清楚,我在下面的代码中展示了迄今为止我所取得的成就。

DVD, PC

1 个答案:

答案 0 :(得分:1)

之后

If cbo_facEntry = ",," Then
cbo_facEntry = "No Preference"
Else
End If

我要插入

cbo_facEntry = Trim(cbo_facEntry)

If Right(cbo_facEntry, 1) = "," Then
   cbo_facEntry = Left(cbo_facEntry, Len(cbo_facEntry) - 1)
End If

If Left(cbo_facEntry, 1) = "," Then
   cbo_facEntry = Right(cbo_facEntry, Len(cbo_facEntry) - 1)
End If

If InStr(1, cbo_facEntry, ",,") Then
   cbo_facEntry = Replace(cbo_facEntry, ",,", ", ")
End If

涵盖案例“,DVD ,, PC,”