|
本帖最后由 jiangjian138 于 2016-2-23 23:17 编辑
想实现的结果:
1.根据K列部门段,如果在代码表c列里面存在的理赔中心,科目段和预算段就会根据E-G列替换成理赔的科目段和预算段,如:导入表第一行部门段代码为“200102”在代码表C列中存在,就其对应的科目段:6601330200替换为6511052800,预算段1102替换为LP1013;
2.导入表生成的为原始数据,在完成第1步后,根据借方和贷方自动合并:如导入表中四个区域(四种不同颜色,但是实际生成是没有颜色的)根据J-U列相同的条件自动相加得到最终结果;
3.将A-U列/X-Y列变成文本格式
4.能否帮忙修改一下已经完成的代码使得生成的过程更加流畅,不会出现闪屏
jiangjian138 发表于 2016-2-24 14:23
其实整个表只是有三步:
1.判断SHEET1的K列里面的部门代码在SHEET2的C列是否存在,如果存在继续第2步,如 ...
楼主测试一下: - Sub test()
- Dim d As Object, arr, brr, i&, j&, s$, t
- t = Timer
- Set d = CreateObject("scripting.dictionary")
- arr = Sheets("sheet2").Range("c1").CurrentRegion
- For i = 2 To UBound(arr)
- For j = 2 To UBound(arr)
- If Len(arr(j, 1)) Then
- s = arr(i, 3) & "|" & arr(j, 1)
- d(s) = i
- End If
- Next
- Next
- With Sheets("sheet1")
- brr = .Range("k1:s" & .[l65536].End(3).Row)
- For i = 2 To UBound(arr)
- s = brr(i, 2) & "|" & brr(i, 1)
- If d.exists(s) Then
- brr(i, 2) = arr(d(s), 4)
- brr(i, 9) = arr(d(s), 5)
- End If
- Next
- .[k1].Resize(i - 1, 9) = brr
- End With
- MsgBox Timer - t
- End Sub
复制代码运行时间
(, 下载次数: 32)
|
|