Board logo

標題: [發問] 判斷式的問題 [打印本頁]

作者: 518587    時間: 2014-4-15 17:27     標題: 判斷式的問題

各位大師!  小弟有個小問題,請求幫助~~

範例如下

A         B
0        10
1        10.4
2        10.2
3        10
4        10.2
5        5.8
6        10.6
7        9.8
8        9.8
9        10.6
10     11.2
0        5.6
1        5.4
2        5.2
3        5
4        5.2
5        5.8
6        5.6
7        5.8
8        5.8
9        5.6
10     5.2
0        10
1        10.4
2        10.2
3        10
4        5.2
5        5.8
6        10.6
7        9.8
8        9.8
9        10.6
10     11.2
我的問題是,我要如何判斷

A列從0~10筆資料判斷一次,看B列值是否都介在於5~6之間,
如果是,將值取0
         否,則原值呈現

麻煩各位大師!! 謝謝
作者: GBKEE    時間: 2014-4-16 06:23

回復 1# 518587
A列從0~10筆資料判斷一次,看B列值是否都介在於5~6之間,
如果是,將值取0 否,則原值呈現, 如何呈現??
作者: 518587    時間: 2014-4-16 12:49

回復 2# GBKEE

是的。 請問這樣的問題要如何用VBA呈現呢??
作者: 518587    時間: 2014-4-16 12:57

回復 2# GBKEE

您的意思是 要呈現在哪一列嗎??

可以將值呈現在B列或是列在新的一列中都可
作者: GBKEE    時間: 2014-4-16 13:21

回復 4# 518587
試試看
  1. Option Explicit
  2. Sub EX()
  3.     Dim E As Range, xMax As Single, xMin As Single
  4.     With Range("A:A")
  5.         .Cells.Replace "0", "=KKK", xlWhole
  6.         With .SpecialCells(xlCellTypeFormulas, xlErrors)
  7.             .Value = 0
  8.             For Each E In .Areas
  9.                 With E.Resize(11).Offset(, 1)
  10.                     xMax = Application.WorksheetFunction.Max(.Cells)
  11.                     xMin = Application.WorksheetFunction.Min(.Cells)
  12.                     If xMin >= 5 And xMax <= 6 Then
  13.                         .Offset(, 1) = 0
  14.                     Else
  15.                         .Offset(, 1) = .Value
  16.                     
  17.                     End If
  18.                 End With
  19.             Next
  20.         End With
  21.     End With
  22. End Sub
複製代碼

作者: yen956    時間: 2014-4-16 17:33

回復 1# 518587
結果是不是樣子?
0         10.0
1         10.4
2         5.4
3         10.0
4         10.2
5         5.8
6         10.6
7         9.8
8         9.8
9         10.6
10         11.2
0         0
1         0
2         0
3         0
4         0
5         0
6         0
7         0
8         0
9         0
10         0
0         10
1         10.4
2         10.2
3         10
4         5.2
5         5.8
6         10.6
7         9.8
8         9.8
9         10.6
10         11.2
如果是, 試試看
  1. Option Explicit
  2. Private Sub CommandButton1_Click()
  3.     Dim i, j, r1 As Integer
  4.     Dim OK As Boolean
  5.    
  6.     '
  7.     For i = 1 To 3
  8.         
  9.         OK = True  '先假定所有的均介於 5 與 6 之間
  10.         
  11.         For j = 0 To 10
  12.             r1 = i * 11 + j - 10
  13.             
  14.             '若有任一個不介於 5 與 6 之間, 則跳離迴圈
  15.             '並設為 not OK, 換下一組
  16.             If Cells(r1, 2) < 5 Or Cells(r1, 2) > 6 Then
  17.                 OK = False
  18.                 Exit For
  19.             End If
  20.         Next
  21.         
  22.         '若全部介於 5 與 6 之間, 則填0
  23.         If OK Then
  24.             For j = 0 To 10
  25.                 r1 = i * 11 + j - 10
  26.                 Cells(r1, 2) = 0
  27.             Next
  28.         End If
  29.     Next
  30. End Sub
複製代碼

作者: 518587    時間: 2014-4-17 10:59

謝謝各位大師的幫助,小弟試試。




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