作者knstt (^^)
看板Visual_Basic
标题Re: [VBA ] 判断数列是否呈现"递增or递减"
时间Fri Aug 19 09:22:06 2011
※ 引述《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
1F:推 smooth131:原po超热心 感恩 m(-_-)m 08/19 20:20