Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: jiangjian138

[已解决]求助帮忙修改及增加代码

[复制链接]
发表于 2016-2-24 12:45 | 显示全部楼层
那你的“预算段1102替换为LP1013”是如何替换的,在哪一行。能否把你的规则重新描述一下
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2016-2-24 13:00 | 显示全部楼层
jiangjian138 发表于 2016-2-24 12:40
没实现需求,您划框的地方是因为它前面的部门段400156不在代码表C列里面,所以就算科目段是6601330200,也 ...

9楼和10楼的描述又发生了矛盾,9楼描述没有替换是因为前面的字段没有对应上,10楼又说没有对应关系,只是一个条件,怎么理解呢?

能否做些示例把你的需求表述一下。
回复

使用道具 举报

 楼主| 发表于 2016-2-24 14:13 | 显示全部楼层
雪舞子 发表于 2016-2-24 12:45
那你的“预算段1102替换为LP1013”是如何替换的,在哪一行。能否把你的规则重新描述一下

预算段1102替换为LP1013,其实是因为代码表中6511052800对应的是LP1013 QQ截图20160224140626.jpg
回复

使用道具 举报

 楼主| 发表于 2016-2-24 14:23 | 显示全部楼层
雪舞子 发表于 2016-2-24 13:00
9楼和10楼的描述又发生了矛盾,9楼描述没有替换是因为前面的字段没有对应上,10楼又说没有对应关系,只是 ...

其实整个表只是有三步:
1.判断SHEET1的K列里面的部门代码在SHEET2的C列是否存在,如果存在继续第2步,如果不存在就结束;
2.如果第1步成立了,就将同一行的科目代码L列,根据sheet2中的E-F列的对应关系替换
3.在完成第3步后,根据sheet2中的F-G列的对应关系查找sheet1L列上科目代码对应的应预算段值,填入S列,不管原来S列是什么数据。
我之前写的代码是能实现我想要的步骤,不过运行的时候实在耗时太长了
回复

使用道具 举报

发表于 2016-2-24 16:43 | 显示全部楼层    本楼为最佳答案   
jiangjian138 发表于 2016-2-24 14:23
其实整个表只是有三步:
1.判断SHEET1的K列里面的部门代码在SHEET2的C列是否存在,如果存在继续第2步,如 ...

楼主测试一下:
  1. Sub test()
  2.     Dim d As Object, arr, brr, i&, j&, s$, t
  3.     t = Timer
  4.     Set d = CreateObject("scripting.dictionary")
  5.     arr = Sheets("sheet2").Range("c1").CurrentRegion
  6.     For i = 2 To UBound(arr)
  7.         For j = 2 To UBound(arr)
  8.             If Len(arr(j, 1)) Then
  9.                 s = arr(i, 3) & "|" & arr(j, 1)
  10.                 d(s) = i
  11.             End If
  12.         Next
  13.     Next
  14.     With Sheets("sheet1")
  15.         brr = .Range("k1:s" & .[l65536].End(3).Row)
  16.         For i = 2 To UBound(arr)
  17.             s = brr(i, 2) & "|" & brr(i, 1)
  18.             If d.exists(s) Then
  19.                 brr(i, 2) = arr(d(s), 4)
  20.                 brr(i, 9) = arr(d(s), 5)
  21.             End If
  22.         Next
  23.         .[k1].Resize(i - 1, 9) = brr
  24.     End With
  25.     MsgBox Timer - t
  26. End Sub
复制代码
运行时间
sj.jpg

查找替换1.rar (13.58 KB, 下载次数: 5)

评分

参与人数 1 +3 收起 理由
白云无尽9987 + 3 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-2-24 18:15 | 显示全部楼层
雪舞子 发表于 2016-2-24 16:43
楼主测试一下:运行时间

感谢这个代码已经可以满足我的需求了,但是为什么我见给您的代码放在我的附件,好像没有没有动静? 附件.rar (60.07 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2016-2-24 21:00 | 显示全部楼层
求助附件与实际附件不一致,
这样简单改当然是不行的。

16楼附件已改好。

导入模板2016v1.3-不含结转(定0204).rar (48.04 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2016-2-25 20:38 | 显示全部楼层
雪舞子 发表于 2016-2-24 21:00
求助附件与实际附件不一致,
这样简单改当然是不行的。

好奇怪今天我使用的时候,不知道怎么回事如果我在工资表里面增加多行的时候,替换的代码就无法实现了 导入模板2016v1.3-不含结转(定0204).rar (60.57 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2016-2-25 22:02 | 显示全部楼层
jiangjian138 发表于 2016-2-25 20:38
好奇怪今天我使用的时候,不知道怎么回事如果我在工资表里面增加多行的时候,替换的代码就无法实现了

导入模板2016v1.3-不含结转(定0204).rar (54.47 KB, 下载次数: 4)
回复

使用道具 举报

 楼主| 发表于 2016-2-25 22:23 | 显示全部楼层
雪舞子 发表于 2016-2-25 22:02

感谢一直以来的帮忙,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-16 12:10 , Processed in 0.277937 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表