Excel精英培训网

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

求个大神老师帮忙看看这个怎么能制作一个宏实现自动统计列表,感激不尽!

[复制链接]
发表于 2017-5-19 14:30 | 显示全部楼层 |阅读模式
本帖最后由 yochlee 于 2017-5-20 09:43 编辑

请老师帮个忙看看能不能搞定,万分感激了!
统计从表3“产品1”开始一直到表N“产品N”,因为日后会有产品5、6、7.。。。。。。,统计结果如下,品名编号这个是每页固定位置的,每个产品的其他参数差别很大不一定隔几行才到要统计的数据。制作方法的行数每个产品不一样,而且会经常更新改进增加行减少行。制作个宏,通过查找每页的制作流程、加工步奏、材料、制作流程2、加工步奏2所在的行,一按自动统计就能把表3开始到表N的品名、编号、产品组成、制作方法、计时、价格。。。。。等后面一整行数据都一起列出来,这样以便统计。
自动统计图.JPG

自动统计TEST1.rar

49.39 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-5-19 23:22 | 显示全部楼层
产品表以外暂定2张 (For b = 3 To allb) 如果增加1张不是产品表则(For b = 4 To allb),类推

自动统计TEST.rar

26.07 KB, 下载次数: 5

回复

使用道具 举报

 楼主| 发表于 2017-5-20 06:47 | 显示全部楼层
谢谢可凡老师,可实在不好意思还是搞不定,因为各产品参数不同所在行不是一定的。
请老师再帮我个忙看看能不能搞定,万分感激了!
统计从表3“产品1”开始一直到表N“产品N”,因为日后会有产品5、6、7.。。。。。。,统计结果如下,品名编号这个是每页固定位置的,每个产品的其他参数差别很大不一定隔几行才到要统计的数据。制作方法的行数每个产品不一样,而且会经常更新改进增加行减少行。制作个宏,通过查找每页的制作流程、加工步奏、材料、制作流程2、加工步奏2所在的行,一按自动统计就能把表3开始到表N的品名、编号、产品组成、制作方法、计时、价格。。。。。等后面一整行数据都一起列出来,这样以便统计。
自动统计图.JPG

自动统计TEST1.rar

49.39 KB, 下载次数: 5

回复

使用道具 举报

发表于 2017-5-20 07:48 | 显示全部楼层
本帖最后由 327718098 于 2017-5-20 11:25 编辑
yochlee 发表于 2017-5-20 06:47
谢谢可凡老师,可实在不好意思还是搞不定,因为各产品参数不同所在行不是一定的。
请老师再帮我个忙看看能 ...

Sub text()
Dim st As Worksheet, rng As Range
For Each st In Worksheets
If st.Name <> Sheet1.Name And st.Name <> Sheet2.Name Then
For Each rng In st.Range("b4", st.Cells(4, 2).End(xlDown))
hh = Sheet1.Cells(Rows.Count, 1).End(3).Row + 1
Sheet1.Cells(hh, 1) = st.[b2]
Sheet1.Cells(hh, 2) = st.[d2]
Sheet1.Cells(hh, 3) = IIf(rng.Offset(0,-1) = "", rng.Offset(0,-1).End(xlUp).Value, rng.Offset(0,-1))
rng.Resize(1, 3).Copy Sheet1.Cells(hh, 4)
Next
End If
Next
End Sub


回复

使用道具 举报

 楼主| 发表于 2017-5-20 09:46 | 显示全部楼层
谢谢327718098老师,不能查找到要复制的那些行,我重新上传TEST1表了,麻烦您帮我再改下好么谢谢了
回复

使用道具 举报

发表于 2017-5-20 10:38 | 显示全部楼层
本帖最后由 327718098 于 2017-5-20 10:43 编辑
yochlee 发表于 2017-5-20 09:46
谢谢327718098老师,不能查找到要复制的那些行,我重新上传TEST1表了,麻烦您帮我再改下好么谢谢了:lovelin ...

不是不能查找到是这样比较快


回复

使用道具 举报

 楼主| 发表于 2017-5-20 11:16 | 显示全部楼层
谢谢327718098老师,这样复制不到啊。因为每张子表上要复制的数据所在的行数不同,有的在很下面
回复

使用道具 举报

发表于 2017-5-20 11:23 | 显示全部楼层
本帖最后由 327718098 于 2017-5-20 16:54 编辑
yochlee 发表于 2017-5-20 11:16
谢谢327718098老师,这样复制不到啊。因为每张子表上要复制的数据所在的行数不同,有的在很下面

Sub text()
Application.ScreenUpdating = False
Dim st As Worksheet, rng As Range
For Each st In Worksheets
If st.Name <> Sheet1.Name And st.Name <> Sheet2.Name Then

For Each rng In st.Range(st.Range("a:a").Find("产品组成").Offset(1, 1), st.Range("A:A").Find("产品组成").Offset(1, 1).End(xlDown))
hh = Sheet1.Cells(Rows.Count, 1).End(3).Row + 1
Sheet1.Cells(hh, 1) = st.[b2]
Sheet1.Cells(hh, 2) = st.[d2]
Sheet1.Cells(hh, 3) = IIf(rng.Offset(0, -1) = "", rng.Offset(0, -1).End(xlUp).Value, rng.Offset(0, -1))
Sheet1.Cells(hh, 4) = rng
rng.Offset(0, 1).Resize(1, 23).Copy Sheet1.Cells(hh, 5)
Next
End If
Next
Application.ScreenUpdating = True
End Sub



回复

使用道具 举报

 楼主| 发表于 2017-5-20 15:11 | 显示全部楼层
谢谢327718098老师,每个合并单元格的第一行对应的产品组成不对,我研究了好久改不正确只能再麻烦老师了
111.jpg
回复

使用道具 举报

发表于 2017-5-20 16:53 | 显示全部楼层
yochlee 发表于 2017-5-20 15:11
谢谢327718098老师,每个合并单元格的第一行对应的产品组成不对,我研究了好久改不正确只能再麻烦老师了 ...

不好意思,大意了把iif函数里没最后那个offset里面的(-1,0)这两个调换一下位置,代码我修改下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 07:22 , Processed in 0.177180 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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