excel里如何用vba实现如下图所示的凑数功能?

上图有些小错误,以下图为准!不好意思把问题说的复杂了,其实就是根据确定的合计数和充电宝的数,寻找A到G列充电宝数和各个相对固定数之和等于合计数的单元格并将其染色,如果有多... 上图有些小错误,以下图为准!不好意思把问题说的复杂了,其实就是根据确定的合计数和充电宝的数,寻找A到G列充电宝数和各个相对固定数之和等于合计数的单元格并将其染色,如果有多种组合,双击合计数这一栏某一个单元格,自动循环用颜色标示该单元格所在行的各种组合 展开
 我来答
万年金刚钻
2014-05-02 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3477万
展开全部

看过这个表,有两点意见:

  1. 由于不知道你双击时有哪些组合已经产生过了(因为你可以点击几次后关闭操作,第二天打开继续操作)所以,【穷尽组合】唯一可能就是对应你指定的H列单元格(也就是某个合计值),计算在各种组合下,A列的余数。。。照这个思路,其实,你需要的是对应这A~G的七列的总共144种组合,你只要测试某个合计数能不能满足分配就可以了的。分配时,A列作为最后的分配余额接受点。你的问题就很容易解决了。

  2. 至于填充颜色方面,不知道你的样例中的前三行中为什么有些单元格不填色,不知道逻辑。建议你建立一张7列144行的表,对于你的这个问题而言,其实这张表是固定的。然后在某个固定单元(比如A1)输入合计值,让公式自动完成每一种组合下A列各行的值。并设立条件格式,如果A列在100~200之间(也就是合计值成功分配在总分配阀值中),就把整行染黄色,如果A列小于100(也就是合计值少于需要的分配值),就染蓝色,如果A列大于200(也就是合计值太多了没法全部分配),就不染色。

以上,针对你的问题这个问题就解决了,不必要去编写宏代码(当然,要想精确生成这张表,既可以手工也可以写段代码完成,貌似手工还会比较快呢)

追问
不好意思把问题说的复杂了,其实就是根据确定的合计数和充电宝的数,寻找A到G列充电宝数和各个相对固定数之和等于合计数的单元格并将其染色,如果有多种组合,双击合计数这一栏某一个单元格,自动循环用颜色标示该单元格所在行的各种组合
追答

如图,

一、你必须在第一行设定原始参数的结构:

B1:任意自定义参与分配数据的起始行(这里是商品A所在行:3)

D1:任意自定义所有参与分配的商品的个数(示例中为:9)

二、第二行的每个单元,你可以自己设定总分配值(500/600/715/311……)

三、第三行起,是每个参与分配的商品(个数必须符合D2指定,否则结果没法预料)的设定分配数

1)除了第一个商品外,所有的商品的分配方式(任意N种),每种分配的数量和次序都可以自定义,你只要保证每个商品分配数量安排结束后的右边一个单元格为空

(注意:空的意思和0是不一样的,空:如果曾经输入过数据,选中单元格然后按Del键就是空单元格了)

2)第一个商品,作为分配数量调整商品,你也可以自行设定它的数值,并将作为分配结果是否完成的判断依据。在结果中:

2.1)小于0或者大于该设定值,整个结果不染色;

2.2)结果大于零并且小于等于该设定值,整个结果会被染成黄色。

四、运行时双击第二行你自己定义的总分配数即可,下面会列出所有可能的组合,并根据商品A的设定值判断每个分配结果是否在范围内

详细请看附件

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式