我是VBA的新手,而且我遇到了必须拆分并复制整列(C)的多值单元格的点,这些单元格用逗号分隔成一个数组。并将其安排到相应的列 的假设:
C1 = oranges,grapes,apple ; C2 = apple,mango ; C786 = watermelon,oranges,plum
它应该到各自的列,芒果的所有值应该到E列,苹果到F,西瓜到G,然后到下一列 我想要实现的是
Initially -::-
A B E F G H I J K
Seller FruitSell Mango Apple Watermelon Grapes Orange Plum Banana
Seller1 Oranges,Grapes,Apple
Seller2 Only Mango
Seller3 Plum,Banana
Output :-:
A B E F G H I J K
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
提前致谢
答案 0 :(得分:1)
答案 1 :(得分:0)
如果您想将其作为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。最后你会得到一本很好的词典,里面有所有的成果。
尝试代码,它可以工作并在即时窗口中生成一些东西。