返回列表 上一主題 發帖

分組前三名語法

回復 1# joey0415

試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR(), E As Variant, Rng As Range
  4.     With Sheets("Sheet1")
  5.         .Range("A1").CurrentRegion.Sort Key1:=.Range("B2"), Order1:=xlAscending, Key2:=.Range( _
  6.         "A2"), Order2:=xlAscending, Key3:=.Range("D2"), Order3:=xlDescending, Header:=xlYes
  7.         '.Range("A1").CurrentRegion.Sort"資料的排序
  8.         .UsedRange.Columns(2).AdvancedFilter xlFilterCopy, , .Cells(1, .Columns.Count), True
  9.         'UsedRange.Columns(2)的進階篩選->  不重複的股票
  10.         
  11.         '**三十萬筆資料 這兩行會慢一點
  12.         
  13.         AR = Application.Transpose(.Cells(1, .Columns.Count).CurrentRegion.Offset(1))
  14.         '取得股票置入一維陣列中
  15.         ReDim Preserve AR(1 To UBound(AR) - 1)          '刪除最後一筆的(空白)資料
  16.         .Cells(1, .Columns.Count).CurrentRegion.Clear   '清除
  17.         .Range("F1").CurrentRegion.Offset(1).Clear      '清除顯示前三筆資料的區域
  18.         For Each E In AR
  19.             Set Rng = .Range("B:B").Find(E, LookAT:=xlWhole)  '找每一股票的第一個位置
  20.             .Range(.Cells(Rng.Row, "A"), .Cells(Rng.Row + 2, "D")).Copy .Cells(.Rows.Count, "F").End(xlUp).Offset(1)
  21.         Next
  22.     End With
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-1-16 17:26 編輯

回復 8# joey0415
  1. Set Rng = .Range("B:B").Find(E, LookAT:=xlWhole)  '找每一股票的第一個位置
複製代碼
已限制在Range("B:B")中,第一次搜尋當然會從第一個(1101)找起
LookAT:=xlWhole :與儲存格的內容完全相同 是 1101 不是 A1101B
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# joey0415
版大的文章也常用 .End(xlUp).Offset(1)之類的定位找某一格或關鍵的上一個或下一格,不知道哪有相關的說明會清楚一些
看這裡
  1. Option Explicit
  2. Sub Ex()
  3.     Dim 物件 As Worksheet
  4.     Set 物件 = Sheets("Sheet1")    '將Sheets("Sheet1")指定到物件變數
  5.     With 物件.Range("a1:f1")
  6.         .Font.Size = 15
  7.         '會出現 .屬性,方法
  8.     End With
  9.     With Sheet1.Range("a1:f1")  'Sheet1 是專案中的物件(工作表物件的CodeName)
  10.     'With Sheets("Sheet1").Range("a1:f1")  '不會出現  .屬性,方法
  11.         
  12.         .Font.Size = 15
  13.         '會出現 .屬性,方法
  14.     End With
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題