標題:
[發問]
如何選擇介於一個範圍的問題
[打印本頁]
作者:
518587
時間:
2014-3-16 14:42
標題:
如何選擇介於一個範圍的問題
小弟有個問題
我有一列資料如下,
A列
1 10
2 11
3 12
4 13
5 14
6 13
7 12
8 11
9 10
10 10
11 10
12 11
13 12
14 13
15 14
我的問題是,假如這列資料數連續"大於3筆資料"都介於(10~11)之間,
判定他為錯誤,修改為空值。(如:第8筆資料到第12筆都在10~11之間,所以值都為0。)
如果未超過3筆則繼續。
請問各位大師這樣語法如何下?
作者:
GBKEE
時間:
2014-3-16 15:48
回復
1#
518587
Option Explicit
Sub Ex()
Dim AR, i As Integer, ii As Integer, X As Integer
AR = Application.WorksheetFunction.Transpose([A1:A15])
For i = 1 To UBound(AR)
If AR(i) >= 10 And AR(i) <= 11 Then
X = X + 1
Else
If X >= 3 Then
For ii = X To 1 Step -1
AR(i - ii) = 0
Next
End If
X = 0
End If
Next
[b1:b15] = Application.WorksheetFunction.Transpose(AR)
'顯示在B欄
End Sub
複製代碼
作者:
518587
時間:
2014-3-16 16:09
回復
2#
GBKEE
感謝大師提點,但我還有個小疑問 AR = Application.WorksheetFunction.Transpose([A1:A15])
這裡[A1:A15]我將它改為[A:A]一整列,不過卻不能(想改成這樣原因是資料數不一定固定!)
請問這部分問題出在哪裡? 能否請大師提點! 感謝
作者:
Hsieh
時間:
2014-3-16 23:42
回復
3#
518587
Sub ex()
r = 2: k = 0
Do Until Cells(r, 2) = "" 'B欄為空白時退出迴圈
Do Until Cells(r, 2) < 10 Or Cells(r, 2) > 11 '<10或>11(不介於10~11之間)退出迴圈
k = k + 1 '計數
r = r + 1
Loop
If k > 3 Then
Cells(r, 2).Offset(-k).Resize(k, 1) = 0 '將內容改為0
End If
r = r + 1: k = 0 '列位加1,計數歸零
Loop
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)