Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2039|回复: 6

[已解决]求助按指定条件用VBA计算最小组合量

[复制链接]
发表于 2017-8-29 09:10 | 显示全部楼层 |阅读模式
本帖最后由 明日之星 于 2017-8-30 22:11 编辑

求助按指定条件用VBA计算最小组合量.zip (11.82 KB, 下载次数: 12)
发表于 2017-8-29 11:13 | 显示全部楼层
  1. Sub aaa()
  2. Dim i&, n
  3. n = 100000
  4. For i = 2 To [c65536].End(3).Row
  5.   If n > Cells(i, 7) / Cells(i, 6) Then n = Cells(i, 7) / Cells(i, 6)
  6.   If Cells(i + 1, 2) <> "" Or i = [c65536].End(3).Row Then
  7.     Cells(i, 8).MergeArea = n
  8.     n = 100000
  9.   End If
  10. Next i
  11. End Sub
复制代码

点评

妙!  发表于 2017-8-29 13:08

评分

参与人数 2 +13 收起 理由
明日之星 + 1 赞一个
苏子龙 + 12 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-8-29 19:40 | 显示全部楼层


TIM图片20170829193252.png TIM图片20170829193329.png

左图是执行当前代码后的效果,不能自动合并单元格,请大神帮忙优化代码达到右图合并后的效果,谢谢!

回复

使用道具 举报

发表于 2017-8-30 15:43 | 显示全部楼层
你既然B列都是手工做的合并单元格,而H列合并单元格的大小跟B列是一致的,直接格式刷事先刷好就行了,
没必要用代码的。
除非B列也没有合并单元格,那所有代码都要重写。

评分

参与人数 1 +1 收起 理由
明日之星 + 1 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-8-30 15:56 | 显示全部楼层
大灰狼1976 发表于 2017-8-30 15:43
你既然B列都是手工做的合并单元格,而H列合并单元格的大小跟B列是一致的,直接格式刷事先刷好就行了,
没 ...

不合并单元格不具备拓展功能,数据量大时格式刷费时较多,请大神帮忙优化代码,谢谢!
回复

使用道具 举报

发表于 2017-8-30 16:05 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. Dim i&, n
  3. n = 100000
  4. For i = 2 To [c65536].End(3).Row
  5.   If n > Cells(i, 7) / Cells(i, 6) Then n = Cells(i, 7) / Cells(i, 6)
  6.   If Cells(i + 1, 2) <> "" Or i = [c65536].End(3).Row Then
  7.     Range(Cells(i, 8), Cells(i - Cells(i, 2).MergeArea.Count + 1, 8)).Merge
  8.     Cells(i, 8).MergeArea = n
  9.     n = 100000
  10.   End If
  11. Next i
  12. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
明日之星 + 1 很给力

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 17:22 , Processed in 0.323817 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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