- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 4# VBALearner
換湯不換藥,來湊一腳- 'Option Base 1 '所修改的程式可不必 Option Base 1
- Sub Ex()
- Dim NewHigh As Long, NewLow As Long, LowRecord As Long, i As Integer, j As Integer
- Dim FinalRecord()
- ' NewHigh = 0: NewLow = 0 ' **變數型態為數字,程式一開始皆為0值
- For i = 2 To 15
- If Cells(i, 1).Value >= NewHigh Then '紀錄創新高壞持平
- NewHigh = Cells(i, 1).Value
- If LowRecord <> 0 Then '判斷非連續創高
- ReDim Preserve FinalRecord(0 To j)
- FinalRecord(j) = LowRecord
- LowRecord = 0 '清空拉回值暫存
- j = j + 1
- End If
- Else
- NewLow = Cells(i, 1).Value - NewHigh
- LowRecord = IIf(LowRecord >= NewLow, NewLow, LowRecord)
- End If
- Next
- MsgBox "最大拉回 : " & Application.Small(FinalRecord, 1)
- MsgBox "第二大拉回 : " & Application.Small(FinalRecord, 2)
- MsgBox "第三大拉回 : " & Application.Small(FinalRecord, 3)
- End Sub
複製代碼 |
|