使用循环在VBA中填充列表

时间:2015-02-26 16:14:01

标签: excel vba

我在填充ValidateList时遇到了问题。这是我的代码:

For i = 2 To letzteZeile

Do While ws.Cells(i, 3).Text = ws.Cells(i + 1 + j, 3).Text

        j = j + 1
Loop


If j > 0 Then

    dvList = ws.Cells(i, 1)

Do While k < j

              k = k + 1
              dvList = dvList + ", " + ws.Cells(i + k, 1)
Loop


With ws.Cells(i, "FT").Validation

    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=dvList
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True

End With

End If

Next i

那我该怎么做?

我想查看多行,查找重复项,然后将属于重复项的数据放在一个下拉菜单中。

我在&#34; dvList&#34;中收集数据。 (字符串)并放入FT列表中。

但不知怎的,我收集的字符串在beginnig上有一个撇号,而我的下拉菜单只有&#34; &#39; Data1,Data2,Data3&#34;。

关于如何解决我的问题的任何想法?

(我不是100%肯定,如果这种下拉菜单是正确的。) ((最后 - 如果可能的话 - 我想将其他工作表的链接放入该下拉菜单。)

提前致谢!

1 个答案:

答案 0 :(得分:0)

这不是任何和所有问题的完整解决方案,只有下一步:

1。 替换:

dvList = dvList + ", " + ws.Cells(i + k, 1)

使用:

dvList = dvList & "," & ws.Cells(i + k, 1)

(我们删除与逗号相关的额外空格)

2。 使用语句之前检查dvList,包括:

MsgBox dvList