Excel精英培训网

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

请教大神们想通过VBA方法快速准确的排序。

[复制链接]
发表于 2016-5-23 10:00 | 显示全部楼层 |阅读模式
本帖最后由 mind1238 于 2016-5-23 14:33 编辑

请教大神们想通过VBA方法快速准确的排序。
首行:(列F--列M)12,15,16.5,18.20.25.30.40这些数值其实是这些板材的厚度,现在的问题是想把这些厚度单独列出来,并用件数要对应厚度的数量。每天都要手工输入,工作量太大了,请大神们指教。
“工作表-排序后”这个文件是我想要结果
原件是没有经过处理的。
涂黄色的部分是我想要的结果

磨机生产表排序.rar

75.12 KB, 下载次数: 7

发表于 2016-5-23 10:22 | 显示全部楼层
按照什么排序?详细一点说吧,可能你懂意思,别人要猜你的意思。
回复

使用道具 举报

 楼主| 发表于 2016-5-23 11:58 | 显示全部楼层
w2001pf 发表于 2016-5-23 10:22
按照什么排序?详细一点说吧,可能你懂意思,别人要猜你的意思。

好的,不好意思。其实是不用排序。
就是把首行的厚度按每一列数据都对应上。然后把件数也要对应。
回复

使用道具 举报

发表于 2016-5-23 13:25 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2. Dim i, j
  3. With Worksheets("原件")
  4. .Columns("T:T").Insert Shift:=xlToLeft
  5. .Range("T1").Value = "件数"
  6. .Columns("T:T").Insert Shift:=xlToLeft
  7. .Range("T1").Value = "厚度"
  8. For i = 2 To .Range("A65536").End(3).Row
  9.     For j = 1 To 8
  10.         If .Cells(i, 5 + j) <> "" Then
  11.            .Range("T" & i).Value = .Cells(1, 5 + j)
  12.            .Range("U" & i).Value = .Cells(i, 5 + j)
  13.         End If
  14.     Next
  15. Next
  16. End With
  17. End Sub
复制代码

磨机生产表排序.rar

78.79 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2016-5-23 14:26 | 显示全部楼层
文刀天可 发表于 2016-5-23 13:25

你好,谢谢你,是这样的意思了。
但是还有一个问题就,序号:48,69,73.这三行是在同一行里有两数厚度数值。
请问这个公式能不能稍微修改一下,就是如果同一行里有多个数值的,自动增加行,但是数度和件数会相对应的。
比序号:73,这一行里有三个数值相应3个厚度,就自动增加行:序号73-1(厚度12件数是15),73-2(厚度是15件数11),73-3(厚度是20件数是16)。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-15 15:23 , Processed in 0.890841 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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