|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 Herosama 于 2018-6-8 13:23 编辑
处理如下数据
数据示例
想要处理成的结果,是相同www.stockemotion.com的内容都放在同一列,没有的都变为空。大体如下:(只弄了部分)
使用的代码如下
Sub kagawa()
Set d = CreateObject("Scripting.Dictionary") '定义字典d
Arr = [a1].CurrentRegion
Arr = Sheets(2).[a1].CurrentRegion '获取原始数据存入数组arr,范围可以自己修改
For i = 1 To UBound(Arr)
For j = 1 To UBound(Arr, 2)
If Arr(i, j) <> "" Then d(Arr(i, j)) = d(Arr(i, j)) & " " & i
'按行开始逐列遍历原始数据,如果不是空格就把行信息存入item,以空格区分
Next
Next
p = d.Keys '取出字典keys的数组结果
q = d.items '取出字典items的数组结果
ReDim brr(1 To UBound(Arr), d.Count) '定义结果数组brr
For i = 0 To d.Count - 1 '遍历每个字典key
s = Split(q(i)) '拆分item得到对应的行信息
For j = 1 To UBound(s) '遍历所有对应信息(注意从1开始,因为0是空白)
brr(s(j), i) = p(i) '直接把对应key存入结果数组中相应行
Next
Next
[s1].Resize(UBound(Arr), d.Count) = brr '输出结果到同一工作表
Sheets(3).[a1].Resize(UBound(Arr), d.Count) = brr '或输出结果到工作表2
End Sub
运行后一直提示 For i = 1 To UBound(Arr) 类型不匹配,文件如下。
机器所有券商1.rar
(24.35 KB, 下载次数: 2)
|
|