返回列表 上一主題 發帖

[發問] 請問如何將資料轉換成TOP 10

回復 1# hero007
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Sh As Worksheet, Rng As Range
  4.     With Sheets("TOP10")
  5.         Sheets("工作表1").Rows(1).Copy .Range("A1")
  6.         .UsedRange.Offset(1) = ""
  7.         .Activate
  8.     End With
  9.     Application.ScreenUpdating = False
  10.     Set Rng = Sheets("工作表1").Cells(1, Sheets("工作表1").Columns.Count)
  11.     Sheets("工作表1").Range("A:A").AdvancedFilter xlFilterCopy, , Rng, True
  12.     'AdvancedFilter(進階篩選):  [商品類別]不重複的個項 到 Rng
  13.     Rng.Sort Rng, xlAscending, Header:=xlYes  'Sort : 排序
  14.     Set Sh = Sheets.Add                     '這活頁簿中新增工作表
  15.     Set Rng = Rng.Offset(1)                 '下移一列
  16.     Do While Rng <> ""
  17.         With Sheets("工作表1")
  18.             .Range("A1").AutoFilter 1, Rng  'AutoFilter(自動篩選):  [商品類別]的準則= Rng
  19.             .Range("A:E").Copy Sh.[A1]      '自動篩選後的資料複製到新增工作表
  20.         End With
  21.         With Sh
  22.             .Range("A1").AutoFilter Field:=4, Criteria1:="10", Operator:=xlTop10Items
  23.             'AutoFilter(自動篩選):  [數量] 最大數值的前10項,
  24.             '**準則 Criteria1:="15" -> 前15項 ***
  25.             .UsedRange.Offset(1).Copy Sheets("TOP10").Range("A" & Sheets("TOP10").Rows.Count).End(xlUp).Offset(1)
  26.             '最大數值的前10項複製到Sheets("TOP10")
  27.         End With
  28.         Set Rng = Rng.Offset(1)                '下移一列
  29.     Loop
  30.     Sheets("工作表1").Cells.AutoFilter
  31.     '工作表有自動篩選,在一次的自動篩選,可取消工作表上的自動篩選
  32.     Rng.EntireColumn = ""
  33.     Application.DisplayAlerts = False
  34.     Sh.Delete
  35.     Application.DisplayAlerts = True
  36.     Application.ScreenUpdating = True
  37. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# hero007

執行階段錯誤 '-2147417848 (80010108)': 參考這裡 試試看
執行階段錯誤 '1004':  參考這裡,加入存檔的程式碼 試試看
你的附檔2003版中執行2#的程式沒有錯誤發生
試試修改看看
  1. With Sheets("工作表1")
  2.             .Range("A1").AutoFilter 1, Rng  'AutoFilter(自動篩選):  [商品類別]的準則= Rng
  3.             '******* 試試看可否在你的Excel環境中解決: 執行階段錯誤 '1004': Class Range的Copy方法失敗
  4.             Sh.AutoFilterMode = False
  5.             '********
  6.             .Range("A:E").Copy Sh.[A1]      '自動篩選後的資料複製到新增工作表
  7.         End With
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題