Excel精英培训网

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

[已解决]有请excel精英里的高手帮我设置一下VBA程序,非常感谢。

  [复制链接]
 楼主| 发表于 2011-11-7 21:19 | 显示全部楼层
现在讲第三步:如果刚才的数值不是56.875而是46.875的话,那它与C列中的数值相加后,(C列中的数值有:11.25、6.5、3、6.5、4.125、6、6.625、6.625、2、2.875、2.75,这些数值在与46.875相加时同样都要加上0.125)和是不会超过A列中的数字58的,46.875可以挑(6.625+0.125)=6.75相加,相加后得数为53.625,答案还是小于58,因此可以在C列中再挑合适数值再与它相加,53.625+(4.125+0.125)=57.875,现在最后的数值与A列中的58相差无几了,所以不能再挑其它数相加了。  像这种可以在C列中挑出数值相加的情况,算法就不是象上一种那样了。应该是:B列的数值加0.125与C列的数值加0.125相乘,然后结果再除以刚才的57.875,再除以固定数36,然后乘以D列的数值,最后把答案填入E列单元格中。

点评

然后:再58-SUM(46.875,4.125,0.125)=6.875 ,再把C列找最接近( 6.875-0.125)的值,继续。。。  发表于 2011-11-8 16:06
应该是A列 减 结果值 58-46.875=11.125 然后找C列 小于最接近(11.125-0.125)的值,  发表于 2011-11-8 16:02
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2011-11-8 16:06 | 显示全部楼层
不是都写上公式了吗?还要做什么呢?
回复

使用道具 举报

发表于 2011-11-8 16:07 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2011-11-7 20:58 | 显示全部楼层
本帖最后由 xiaoxie2830398 于 2011-11-7 21:04 编辑

接下来讲第二步:把56.875这个数值拿到表C列中找最大的数字相加,但相加后的和不能超过A列中的数值,如58,从大的数字一直一个个加过去,(C列中的数值有:11.25、6.5、3、6.5、4.125、6、6.625、6.625、2、2.875、2.75,这些数值在与56.875相加时同样都要加上0.125)结果和都是大于58的,在没有从C列中挑出适当的数值可与56.875相加时,这时就把表B列同行的数值(11.375+0.125)除以刚才的5,得数再除以固定数36,然后再乘以表D列的数值,最后的结果填入表E列中。
同样也举例说明:(11.375+0.125)/5/36*1=0.0638888,答案4舍5入取值0.0639填入E列中。

点评

=ROUND((11.375+0.125)/INT(58/(11.25+0.125))/36*1,4) C列不符的情况下  发表于 2011-11-8 16:13
回复

使用道具 举报

 楼主| 发表于 2011-11-7 20:35 | 显示全部楼层
这么多版主和高手都来了呀!我想极力地表示我的意图,可你们无法理解。其实也没那么复杂了,我现在重新把它简单化,文字化,下面我们来一步步说明:我想把表图中A列的数据,除以表C列的数据,然后呢把它的商 小数点后面的数字去掉,只保留小数点前面的数字,然后再把这个去掉小数点的数值乘以表C列的数字。(举例说明:表第一行中58/(11.25+0.125)=5.09,去掉小数点后面的数值后得5,然后再把5乘以C列一行的数字:(11.25+0.125)*5=56.875

点评

=INT(58/(11.25+0.125))*(11.25+0.125) 结果:56.875  发表于 2011-11-8 16:09
回复

使用道具 举报

 楼主| 发表于 2011-11-9 10:53 | 显示全部楼层
mxg825 发表于 2011-11-8 23:35
这那个A列除C列 等于整数 要求不明,未添加

运行宏时出现:不能对合并的单元格作部分更改。 VBA2.jpg
VBA.jpg
回复

使用道具 举报

 楼主| 发表于 2011-11-9 10:25 | 显示全部楼层
mxg825 发表于 2011-11-8 23:35
这那个A列除C列 等于整数 要求不明,未添加

好厉害,还能做成动画呀。看过去是有那么一回事了,接下来还请告知这些代码怎么添加,怎么使用呢?

回复

使用道具 举报

 楼主| 发表于 2011-11-8 18:02 | 显示全部楼层
snrvgbb 发表于 2011-11-4 14:47
我承认我没把要求看完,太长了

请关注最后面的叙述,我已经把它们分步/文字化了.
回复

使用道具 举报

 楼主| 发表于 2011-11-8 17:51 | 显示全部楼层
mxg825 发表于 2011-11-8 16:17
晚上再帮你写!现在没空!
A列就一个值 58?

你这个高中生不错,不管行与不行,至少代码是列出来了,首先表示感谢,附件也只有图片,如果不清楚的地方可以提问.
回复

使用道具 举报

 楼主| 发表于 2011-11-8 17:46 | 显示全部楼层
zyouong 发表于 2011-11-8 16:06
不是都写上公式了吗?还要做什么呢?

你说的对,附件没有,有的也是我上传的图片,应该我的意思表达清楚了,不一定要原件才能解答问题吧.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 10:30 , Processed in 0.319377 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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