推 smooth131:原po超熱心 感恩 m(-_-)m 08/19 20:20
※ 引述《smooth131 (囧rz)》之銘言:
: 【目的】
: 1.求出以下數列是否呈現遞增or遞減的狀態
: 2.判斷遞增or遞減的起始點及終點的數值
: 【資料狀態】
: 1
: 2
: 3
: 4
: 5
: 6
: 7
: 8
: 9
: 10
: 11
: 12
: 13
: 14
: 15
: 【問題描述】
: 1. 如何判斷是否為遞增or遞減狀態已經好了,
: 目前想知道的是怎麼樣求得起始點及終點的值
: 2. 照我這樣寫,只要k > num 時k = 0,原意是想當k > num 時才判定成遞增
: ,現在想改卻不知道該從何下手
: 感謝各位大哥的協助 m(-_-)m
: 【程式碼】
[恕刪]
昨天以為可以用Do loop,後來發現我想錯了
以下提供我的邏輯
Sub test()
Dim i, StartRow, EndRow, MyColumn As Long
Dim MyString As String
Dim MyValue
MyColumn = 1 '指定範圍欄號
StartRow = 1 '指定起始範圍列號
EndRow = Cells(StartRow, MyColumn).End(xlDown).Row
For i = StartRow + 1 To EndRow
MyValue = (Cells(i - 1, MyColumn).Value - Cells(i, MyColumn)) _
* (Cells(i, MyColumn).Value - Cells(i + 1, MyColumn))
If MyValue < 0 Or i = EndRow Then
If Cells(i, MyColumn) > Cells(StartRow, MyColumn) Then _
MyString = "遞增" Else MyString = "遞減"
Debug.Print MyString & " Row:" & StartRow & "→" & i & _
" Value: " & Cells(StartRow, MyColumn) & "→" _
& Cells(i, MyColumn)
StartRow = i
End If
Next i
End Sub
以上有一個限制條件,即假設數列中任二相的數字不相等的情況
如果會遇到相等的話,就要再修改
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.80.20.253