返回列表 上一主題 發帖

[發問] 請問是否可以用儲存格的資料來排序工作表

回復 3# luffyzoro
  1. Sub nn()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")

  4. For Each sh In Sheets
  5.   k = k + 1
  6.   d(k) = sh.[B2].Value
  7.   d1(k) = sh.Name
  8. Next
  9. Do Until d.Count = 0
  10. ar = d.items: ay = d.keys
  11.   n = Application.Match(Application.Min(ar), ar, 0) - 1
  12.   ky = ay(n)
  13.   d.Remove ky
  14.   Sheets(d1(ky)).Move after:=Sheets(Sheets.Count)
  15. Loop
  16. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2011-11-29 20:33 編輯

回復 6# luffyzoro
  1. Sub nn()
  2. Set d = CreateObject("Scripting.Dictionary")  '創建字典物件
  3. Set d1 = CreateObject("Scripting.Dictionary")  '創建字典物件

  4. For Each sh In Sheets  '以所有工作表做迴圈
  5.   k = k + 1  '設置變數k,每一個工作表增加變數值1
  6.   d(k) = Val(sh.[B2].Value)  '將工作表B2的值存入字典物件
  7.   d1(k) = sh.Name   '將工作表名稱存入字典物件
  8. Next
  9. Do Until d.Count = 0  '執行迴圈,直到字典物件內沒有項目存在
  10. ar = d.items: ay = d.keys  '將字典物件的索引值及內容取出指定給陣列變數
  11.   n = Application.Match(Application.Min(ar), ar, 0) - 1  '找到最小值的序號,因陣列的索引值是從0開始,所以必須將位置減1,才是對照的索引值
  12.   ky = ay(n)  'ky會得到目前字典物件內容(B2值)的最小值對應的工作表名稱
  13.   d.Remove ky  '移除字典項目
  14.   Sheets(d1(ky)).Move after:=Sheets(Sheets.Count)  '將工作表移動到最後
  15. Loop
  16. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 小事不做、大事難成。
返回列表 上一主題