Excel精英培训网

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

[已解决]工作料号整理Vba

[复制链接]
发表于 2012-7-21 12:51 | 显示全部楼层 |阅读模式
A-D列为数据源,F列是根据D列需机器数总数和如8,自动在F列生成机器编号1,,,,,,,8。H列工作料号是根据D列需机器数数量,对应它机器台数数量。i列以后根据B列机器工作趟数数据,后生成C列加工时间个数。最后在G列生成加工总时间,谢谢帮忙!!
最佳答案
2012-7-21 14:15
本帖最后由 suye1010 于 2012-7-22 21:51 编辑
  1. Sub test()
  2. Dim LastRow, i, j, k, TempRow, Times
  3. LastRow = Cells(65536, 1).End(xlUp).Row
  4. For i = 2 To LastRow
  5.     For j = 1 To Cells(i, 4)
  6.         TempRow = Cells(65536, 6).End(xlUp).Row
  7.         Cells(TempRow + 1, 6) = TempRow
  8.         Cells(TempRow + 1, 8) = Cells(i, 1)
  9.         If Cells(i, 2) \ Cells(i, 4) = Cells(i, 2) / Cells(i, 4) Then
  10.             Times = Cells(i, 2) \ Cells(i, 4)
  11.         Else
  12.             Times = Cells(i, 2) \ Cells(i, 4) + IIf(j <= Cells(i, 2) Mod Cells(i, 4), 1, 0)
  13.         End If
  14.         For k = 1 To Times
  15.                 Cells(TempRow + 1, 8 + k) = Cells(i, 3)
  16.         Next k
  17.         Cells(TempRow + 1, 7) = Application.WorksheetFunction.CountA(Range(Cells(TempRow + 1, 9), Cells(TempRow + 1, 256))) * Cells(i, 3)
  18.     Next j
  19. Next i
  20. End Sub
复制代码

Book1.rar

12.5 KB, 下载次数: 10

发表于 2012-7-21 14:15 | 显示全部楼层    本楼为最佳答案   

请记得下次提问的时候务必尽可能详细的描述你的需求,你的心思别人很难猜哦O(∩_∩)O

本帖最后由 suye1010 于 2012-7-22 21:51 编辑
  1. Sub test()
  2. Dim LastRow, i, j, k, TempRow, Times
  3. LastRow = Cells(65536, 1).End(xlUp).Row
  4. For i = 2 To LastRow
  5.     For j = 1 To Cells(i, 4)
  6.         TempRow = Cells(65536, 6).End(xlUp).Row
  7.         Cells(TempRow + 1, 6) = TempRow
  8.         Cells(TempRow + 1, 8) = Cells(i, 1)
  9.         If Cells(i, 2) \ Cells(i, 4) = Cells(i, 2) / Cells(i, 4) Then
  10.             Times = Cells(i, 2) \ Cells(i, 4)
  11.         Else
  12.             Times = Cells(i, 2) \ Cells(i, 4) + IIf(j <= Cells(i, 2) Mod Cells(i, 4), 1, 0)
  13.         End If
  14.         For k = 1 To Times
  15.                 Cells(TempRow + 1, 8 + k) = Cells(i, 3)
  16.         Next k
  17.         Cells(TempRow + 1, 7) = Application.WorksheetFunction.CountA(Range(Cells(TempRow + 1, 9), Cells(TempRow + 1, 256))) * Cells(i, 3)
  18.     Next j
  19. Next i
  20. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-7-21 14:25 | 显示全部楼层
suye1010 发表于 2012-7-21 14:15

谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!高手!!!!!
回复

使用道具 举报

 楼主| 发表于 2012-7-21 14:40 | 显示全部楼层
suye1010 发表于 2012-7-21 14:15

再帮我看一下,谢谢!!机器工作趟数B3j4少一个5.3,谢谢!!

Book3.rar

29.07 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2012-7-21 15:00 | 显示全部楼层
suye1010 发表于 2012-7-21 14:15

34
9.4
DSHI105139D02/0308
9.4
 
 
35
9.4
DSHI105139D02/0308
9.4
 
 
36
9.4
DSHI105139D02/0308
9.4
 
 
37
28.2
DSHI105139D02/0308
9.4
9.4
9.4
这边也有一点小问题,谢谢!!如附件

Book3.rar

29.07 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2012-7-22 10:14 | 显示全部楼层
suye1010 发表于 2012-7-21 14:15

分排规则是如机器工作趟数11,需机器数3,=(11/3=3,余2,再从上到下,第一台1,第二台1,把余数补完。还有:机器工作趟数/需机器数>1,一定大于1,如B18我的数据是错的,!13,14,15,排列再帮我看看,谢谢!!!

Book4.rar

30.43 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2012-7-23 17:45 | 显示全部楼层
suye1010 发表于 2012-7-21 14:15

oK谢谢谢谢谢谢谢!!!!!!!!!!!!!!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-5 08:15 , Processed in 0.429696 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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