ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 EH云课堂直播课程免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 243|回复: 8

[求助] 求循环指点下

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-9-8 18:52 | 显示全部楼层 |阅读模式
本帖最后由 kulagen 于 2019-9-9 08:44 编辑

在一个工作簿里有两张表;sheet2用VBA公式取销量等材料表的数据;代码如下;
这三段怎么循环?
如果要cells里的列+18循环到363后结束?;从E循环到相应的次数后结束?怎么做循环公式?怎么优化代码



Sheet2.Cells(4, 3) = "=SUMPRODUCT((C$3=销量等材料!$ad$3:$ad$8000)*($A4=销量等材料!$z$3:$z$8000)*(销量等材料!$e$3:$e$8000))"
    Range("C4").Select
    Selection.AutoFill Destination:=Range("C4:t4"), Type:=xlFillDefault
    Range("C4:t4").Select
    Selection.AutoFill Destination:=Range("C4:t203"), Type:=xlFillDefault
    Range("C4:t203").Select
    Selection.Copy '复制
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False '数值化
    Application.CutCopyMode = False 'ESC

Sheet2.Cells(4, 21) = "=SUMPRODUCT((C$3=销量等材料!$ad$3:$ad$8000)*($A4=销量等材料!$z$3:$z$8000)*(销量等材料!$f$3:$f$8000))"
    Range("u4").Select
    Selection.AutoFill Destination:=Range("u4:al4"), Type:=xlFillDefault
    Range("u4:al4").Select
    Selection.AutoFill Destination:=Range("u4:al203"), Type:=xlFillDefault
    Range("u4:al203").Select
    Selection.Copy '复制
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False '数值化
    Application.CutCopyMode = False 'ESC

Sheet2.Cells(4, 39) = "=SUMPRODUCT((C$3=销量等材料!$ad$3:$ad$8000)*($A4=销量等材料!$z$3:$z$8000)*(销量等材料!$g$3:$g$8000))"
     Range("am4").Select
     Selection.AutoFill Destination:=Range("am4:bd4"), Type:=xlFillDefault
     Range("am4:bd4").Select
     Selection.AutoFill Destination:=Range("am4:bd203"), Type:=xlFillDefault
     Range("am4:bd203").Select
     Selection.Copy '复制
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
     :=False, Transpose:=False '数值化
     Application.CutCopyMode = False 'ESC

Sheet2.Cells(4, 57) = "=SUMPRODUCT((C$3=销量等材料!$ad$3:$ad$8000)*($A4=销量等材料!$z$3:$z$8000)*(销量等材料!$h$3:$h$8000))"
     Range("be4").Select
     Selection.AutoFill Destination:=Range("be4:bv4"), Type:=xlFillDefault
     Range("be4:bv4").Select
     Selection.AutoFill Destination:=Range("be4:bv203"), Type:=xlFillDefault
     Range("be4:bv203").Select
     Selection.Copy '复制
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
     :=False, Transpose:=False '数值化
     Application.CutCopyMode = False 'ESC



汇总数据.rar

113.09 KB, 下载次数: 0

TA的精华主题

TA的得分主题

发表于 2019-9-8 18:58 | 显示全部楼层
幸亏工作表上只需填几个单元格的函数,如果要填上几万个函数那就苶喜楼主,电脑卡死了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-8 19:10 | 显示全部楼层
本帖最后由 kulagen 于 2019-9-8 19:11 编辑
maditate 发表于 2019-9-8 18:58
幸亏工作表上只需填几个单元格的函数,如果要填上几万个函数那就苶喜楼主,电脑卡死了。

是卡;关键是没多少数;怎么弄不卡

TA的精华主题

TA的得分主题

发表于 2019-9-8 19:20 | 显示全部楼层
kulagen 发表于 2019-9-8 19:10
是卡;关键是没多少数;怎么弄不卡

告诉过你了,是你的函数卡,去除了函数就不卡了。

TA的精华主题

TA的得分主题

发表于 2019-9-8 20:02 | 显示全部楼层
这应该是录的宏吧,代码这么细这么肿,一般能写出这功能代码就不会再用vbat往单元格里写函数了,你还不如发个文件说上你的要求来得更快

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-8 22:35 | 显示全部楼层
dgenson 发表于 2019-9-8 20:02
这应该是录的宏吧,代码这么细这么肿,一般能写出这功能代码就不会再用vbat往单元格里写函数了,你还不如发 ...

有道理直接上表;求优化

汇总数据.rar

113.16 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2019-9-8 22:49 | 显示全部楼层
下载下来看了一眼,
公式错误,部分信息(比如商品编码)是空的,
不研究了。
猜来猜去不一定能搞懂楼主表格所需要达到的要求和意图。
学习成本太高了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-9 08:00 | 显示全部楼层
moonlit123 发表于 2019-9-8 22:49
下载下来看了一眼,
公式错误,部分信息(比如商品编码)是空的,
不研究了。

编码忘记了;现在应该改好了拜托了

汇总数据.rar

113.09 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-9 08:45 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2019-11-18 04:07 , Processed in 0.077034 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

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