当前位置: 代码迷 >> VBA >> 急难!请各位帮忙,直接20分
  详细解决方案

急难!请各位帮忙,直接20分

热度:5982   发布时间:2013-02-26 00:00:00.0
急!难!请各位大虾帮忙,直接20分!
这是小弟公司业务人员提供的EXCEL表,每天的记录数都不一样,但标题行相同。最好能新建一张sheet表,谢谢各位大虾帮忙!

 编号 名称 JobName 数量1 数量2 挂号信编号 其它
80001 钻石卡 ccb1 7 7 45471305 1  
80101 白痴卡 ccb2 10 9 45471312
80202 变态卡 ccb3 2100 2000 45471321
80503 哈哈卡 ccb2 300 300 45473321
80911 哭哭卡 ccb4 500 500 45473621
32003 甜甜卡 vis 200 200 45474121
42005 黑猫卡 sdf 300 300 45474321
56007 唐僧卡 ads 3000 3000 45474621
12303 魔鬼卡 tyr 1 1 45477621
12404 倒霉卡 tyr 510 510 45477622
。。。

1、插入一行。判断“数量2”列,如果“数量2”>500,则该条记录下面插入一行,除“数量1”、“数量2”、“挂号信编号”以外,其它列的值都复制该条记录。(数量1可能与数量2不同,但数量1肯定大于数量2,数量1比数量2多的数量都放在插入的最后一条记录中)该条记录“数量1”、“数量2”=500,“挂号信编号”=该条记录上一条记录的“挂号信编号”+“数量2”。插入一行的“数量2”=原先该条记录的“数量2”-500,“挂号信编号”=该条记录的“挂号信编号”+“数量2”。如果插入那行的“数量2”再大于500,则在插入一行,规则同上。
效果如图:
  编号 名称 JobName 数量1 数量2 挂号信编号 其它
80001 钻石卡 ccb1 7 7 45471305 1
80101 白痴卡 ccb2 10 9 45471312
80202 变态卡 ccb3 500 500 45471321
80202 变态卡 ccb3 500 500 45471821
80202 变态卡 ccb3 500 500 45472321
80202 变态卡 ccb3 600 500 45472821
80503 哈哈卡 ccb2 300 300 45473321
80911 哭哭卡 ccb4 500 500 45473621
32003 甜甜卡 vis 200 200 45474121
42005 黑猫卡 sdf 300 300 45474321
56007 唐僧卡 ads 500 500 45474621
56007 唐僧卡 ads 500 500 45475121
56007 唐僧卡 ads 500 500 45475621
56007 唐僧卡 ads 500 500 45476121
56007 唐僧卡 ads 500 500 45476621
56007 唐僧卡 ads 500 500 45477121
12303 魔鬼卡 tyr 1 1 45477621
12404 倒霉卡 tyr 500 500 45477622
12404 倒霉卡 tyr 10 10 45478122
。。。

2、在“挂号信编号”后面插入一列“挂号信截止编号”,“挂号信截止编号”=“挂号信编号”-“数量2”+1
效果如图:
  编号 名称 JobName 数量1 数量2 挂号信编号 挂号信截止编号 其它
80001 钻石卡 ccb1 7 7 45471305 45471311 1
80101 白痴卡 ccb2 10 9 45471312 45471320
80202 变态卡 ccb3 500 500 45471321 45471820
80202 变态卡 ccb3 500 500 45471821 45472320
80202 变态卡 ccb3 500 500 45472321 45472820
80202 变态卡 ccb3 600 500 45472821 45473320
80503 哈哈卡 ccb2 300 300 45473321 45473620
80911 哭哭卡 ccb4 500 500 45473621 45474120
32003 甜甜卡 vis 200 200 45474121 45474320
42005 黑猫卡 sdf 300 300 45474321 45474620
56007 唐僧卡 ads 500 500 45474621 45475120
56007 唐僧卡 ads 500 500 45475121 45475620
56007 唐僧卡 ads 500 500 45475621 45476120
56007 唐僧卡 ads 500 500 45476121 45476620
56007 唐僧卡 ads 500 500 45476621 45477120
56007 唐僧卡 ads 500 500 45477121 45477620
12303 魔鬼卡 tyr 1 1 45477621 45477621
12404 倒霉卡 tyr 500 500 45477622 45478121
12404 倒霉卡 tyr 10 10 45478122 45478131
。。。

3、插入合计数。判断每条记录的“数量2”,“数量2”<550在所判断的最后一条记录插入一行合计数,并在插入合计数的记录数第一列加“合计数”文字,这一列加粗。如判断的前2条记录“数量2”合计60,第3条记录“数量2”=500,则在第二条记录后插入合计数,第3条记录后面插入合计数。
效果如图:
  编号 名称 JobName 数量1 数量2 挂号信编号 挂号信截止编号 其它
80001 钻石卡 ccb1 7 7 45471305 45471311 1
80101 白痴卡 ccb2 10 9 45471312 45471320
80202 变态卡 ccb3 500 500 45471321 45471820
合计 516
80202 变态卡 ccb3 500 500 45471821 45472320
合计 500
80202 变态卡 ccb3 500 500 45472321 45472820
合计 500
80202 变态卡 ccb3 600 500 45472821 45473320
合计 500
80503 哈哈卡 ccb2 300 300 45473321 45473620
合计 300
80911 哭哭卡 ccb4 500 500 45473621 45474120
合计 500
32003 甜甜卡 vis 200 200 45474121 45474320
42005 黑猫卡 sdf 300 300 45474321 45474620
合计 500
56007 唐僧卡 ads 500 500 45474621 45475120
合计 500
56007 唐僧卡 ads 500 500 45475121 45475620
合计 500
56007 唐僧卡 ads 500 500 45475621 45476120
合计 500
56007 唐僧卡 ads 500 500 45476121 45476620
合计 500
56007 唐僧卡 ads 500 500 45476621 45477120
合计 500
56007 唐僧卡 ads 500 500 45477121 45477620
12303 魔鬼卡 tyr 1 1 45477621 45477621
合计 501
12404 倒霉卡 tyr 500 500 45477622 45478121
12404 倒霉卡 tyr 10 10 45478122 45478131
合计 510


------解决方案--------------------------------------------------------
  相关解决方案