Excel精英培训网

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

[已解决]请帮助解决列排序移动问题

[复制链接]
发表于 2012-3-12 17:55 | 显示全部楼层 |阅读模式
请帮助解决列排序移动问题,谢谢!
列移动1.rar (20.52 KB, 下载次数: 28)
 楼主| 发表于 2012-3-12 21:59 | 显示全部楼层
本帖最后由 yizhih 于 2012-3-12 22:03 编辑
bb75308973 发表于 2012-3-12 20:16
测试看看

谢谢 bb75308973,就是有一个问题,无论是移动几列,A1区总是有两行重复的数据。
1.JPG
附件怎么删除,下面这个附件是多余的。

1.rar

69 Bytes, 下载次数: 6

回复

使用道具 举报

发表于 2012-3-12 22:07 | 显示全部楼层
本帖最后由 bb75308973 于 2012-3-12 22:10 编辑
yizhih 发表于 2012-3-12 21:59
谢谢 bb75308973,就是有一个问题,无论是移动几列,A1区总是有两行重复的数据。

附件怎么删除,下面这 ...

明白了,代码有点问题我修改下
回复

使用道具 举报

发表于 2012-3-12 20:16 | 显示全部楼层    本楼为最佳答案   
本帖最后由 bb75308973 于 2012-3-13 01:05 编辑

测试看看
列移动答案.zip (32.17 KB, 下载次数: 26)
回复

使用道具 举报

发表于 2012-3-13 01:06 | 显示全部楼层
yizhih 发表于 2012-3-12 21:59
谢谢 bb75308973,就是有一个问题,无论是移动几列,A1区总是有两行重复的数据。

附件怎么删除,下面这 ...

代码及附件都更新了,你再看看
回复

使用道具 举报

 楼主| 发表于 2012-3-13 11:39 | 显示全部楼层
bb75308973 发表于 2012-3-13 01:06
代码及附件都更新了,你再看看

非常感谢 bb75308973 老师,非常好,再次感谢!
回复

使用道具 举报

发表于 2012-3-13 17:55 | 显示全部楼层
再给你个简单快速的方法
  1. Private Sub CommandButton1_Click()
  2. Dim n As Integer, a As Integer, k As Integer, maxa As Integer, maxb As Integer, maxc As Integer
  3. Dim rga As Range, rgb As Range, rgc As Range, rg As Range
  4. Application.ScreenUpdating = False
  5. '清除原来的内容
  6. Range("BC5:BK107").ClearContents: Range("BM5:BU107").ClearContents: Range("BW5:CE107").ClearContents
  7. a = [r2]: k = 55
  8. '定义要取最大值的区域3个
  9. Set rga = Range("H107:Q107"): Set rgb = Range("U107:AD107"): Set rgc = Range("AH107:AQ107"): Set rg = Range("A1")
  10. 'On Error Resume Next
  11. '取多少列就循环多少次
  12. For n = 1 To a
  13. '计算第几大的位置
  14. maxa = Evaluate("=MATCH(LARGE(  " & rga.Address & "  *100+1/COLUMN( " & rga.Address & " )," & n & "), " & rga.Address & " *100+1/COLUMN( " & rga.Address & " ),0)") + 7
  15. maxb = Evaluate("=MATCH(LARGE(  " & rgb.Address & "  *100+1/COLUMN( " & rgb.Address & " )," & n & "), " & rgb.Address & " *100+1/COLUMN( " & rgb.Address & " ),0)") + 20
  16. maxc = Evaluate("=MATCH(LARGE(  " & rgc.Address & "  *100+1/COLUMN( " & rgc.Address & " )," & n & "), " & rgc.Address & " *100+1/COLUMN( " & rgc.Address & " ),0)") + 33
  17. '复制相应的列到相应的区域
  18. Range(Cells(5, maxa), Cells(107, maxa)).Copy
  19. Range(Cells(5, k), Cells(107, k)).PasteSpecial xlPasteFormulas
  20. Range(Cells(5, maxb), Cells(107, maxb)).Copy
  21. Range(Cells(5, (k + 10)), Cells(107, (k + 10))).PasteSpecial xlPasteFormulas
  22. Range(Cells(5, maxc), Cells(107, maxc)).Copy
  23. Range(Cells(5, (k + 20)), Cells(107, (k + 20))).PasteSpecial xlPasteFormulas
  24. k = k + 1
  25. Next
  26. [BD3].Activate
  27. On Error GoTo 0
  28. Application.ScreenUpdating = True
  29. End Sub
复制代码
回复

使用道具 举报

发表于 2012-7-12 16:22 | 显示全部楼层
bb75308973 发表于 2012-3-12 20:16
测试看看

这么复杂啊,佩服编程        
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 09:45 , Processed in 0.304891 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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