Board logo

標題: [發問] 如何選擇介於一個範圍的問題 [打印本頁]

作者: 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
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR, i As Integer, ii As Integer, X As Integer
  4.     AR = Application.WorksheetFunction.Transpose([A1:A15])
  5.     For i = 1 To UBound(AR)
  6.         If AR(i) >= 10 And AR(i) <= 11 Then
  7.             X = X + 1
  8.         Else
  9.             If X >= 3 Then
  10.                 For ii = X To 1 Step -1
  11.                     AR(i - ii) = 0
  12.                 Next
  13.             End If
  14.             X = 0
  15.         End If
  16.     Next
  17.     [b1:b15] = Application.WorksheetFunction.Transpose(AR)
  18.     '顯示在B欄
  19. 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
  1. Sub ex()
  2. r = 2: k = 0
  3. Do Until Cells(r, 2) = ""  'B欄為空白時退出迴圈
  4. Do Until Cells(r, 2) < 10 Or Cells(r, 2) > 11  '<10或>11(不介於10~11之間)退出迴圈
  5.    k = k + 1  '計數
  6.    r = r + 1
  7. Loop
  8. If k > 3 Then
  9.    Cells(r, 2).Offset(-k).Resize(k, 1) = 0  '將內容改為0
  10. End If
  11. r = r + 1: k = 0  '列位加1,計數歸零
  12. Loop
  13. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)