- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 2# rouber590324
樓主應該是期望如此的- Option Explicit
- Sub Ex()
- Dim D As Object, Rng As Range, R As Range
- Dim xMax As Single, xMin As Single
- Set D = CreateObject("SCRIPTING.DICTIONARY") '字典物件
- Set Rng = Sheets("資料").[I3:O21] '資料範圍
- xMax = Application.Max(Rng.Columns(3)) '第3欄(k欄)的最大值
- xMin = Application.Min(Rng.Columns(3)) '第3欄(k欄)的最小值
- For Each R In Rng.Rows '資料範圍(物件)的列(物件)
- If R.Cells(3) = xMax Then '是最大值的數值
- If D.exists(xMax) Then '字典物件的key(關鍵字)是存在的
- Set D(xMax) = Union(R, D(xMax)) 'Union:兩個或多個範圍的合併範圍。
- Else
- Set D(xMax) = R '設定範圍
- End If
- ElseIf R.Cells(3) = xMin Then '是最小值的數值
- If D.exists(xMin) Then
- Set D(xMin) = Union(R, D(xMin))
- Else
- Set D(xMin) = R
- End If
- End If
- Next
- D(xMax).Copy Sheets("最大值").[a1]
- D(xMin).Copy Sheets("最小值").[a1]
- End Sub
複製代碼 |
|