多值单元格,以逗号分隔

我是新来的VBA,我被困在一个点,我必须拆分和复制整个列(C)的多值单元格,由逗号分隔的数组。 并将其排列到相应的列上假设:

C1 = oranges,grapes,apple ; C2 = apple,mango ; C786 = watermelon,oranges,plum 

它应该到它各自的列,芒果的所有值应该去E栏和苹果到F,西瓜到G,并rest到下一列我想要实现的是

 Initially -::- ABEFGHIJK Seller FruitSell Mango Apple Watermelon Grapes Orange Plum Banana Seller1 Oranges,Grapes,Apple Seller2 Only Mango Seller3 Plum,Banana 

  Output :-: ABEFGHIJK Seller FruitSell Mango Apple Watermelon Grapes Orange Plum Banana Seller1 Oranges,Grapes,Apple Apple Grapes Orange Seller2 Only Mango Mango Seller3 Plum,Banana Plum Banana 

提前致谢

这是公式的解决scheme: 解

使用VBA将会是类似的,但不太理想,如果它存在于B列中,则必须遍历行和列并插入相应的结果。

如果你想把它作为一个VBA代码,你可以从这里开始:

 Option Explicit Sub TestMe() Dim my_dict As Object Dim my_str As String Dim my_arr As Variant Dim my_key As Variant Dim l_counter As Long Set my_dict = CreateObject("Scripting.Dictionary") my_str = "ora,gra,app,app,app,man,man" 'Range(Cells(2, 2),cells(6,2)) my_arr = Split(my_str, ",") For l_counter = LBound(my_arr) To UBound(my_arr) If my_dict.exists(my_arr(l_counter)) Then my_dict(my_arr(l_counter)) = my_dict(my_arr(l_counter)) + 1 Else my_dict.Add my_arr(l_counter), 1 End If Next l_counter For Each my_key In my_dict.Keys Debug.Print my_key, my_dict(my_key) Next my_key End Sub 

在你的情况下,你应该为每个单元格放一个循环,写入my_str。 最后你会得到一本很好的字典,里面有所有的水果。

尝试代码,它的工作原理,并在即时窗口产生的东西。