Board logo

標題: 請問...如何將a1~a5儲存格內的值乘上比例後,再與b1~b5做比對 [打印本頁]

作者: pcwater    時間: 2011-7-23 16:09     標題: 請問...如何將a1~a5儲存格內的值乘上比例後,再與b1~b5做比對

各位大大,如下excel儲存格,請問
我現在的程式是這樣寫
If Sheet1.Range("J" & i + 5) > 50 Or Sheet1.Range("J" & i + 5) < -50 Then
    Sheet5.Range("E" & i + 1) = 1
End If
這樣的寫法是判斷差異值是否在±50以內
如果是在±50內,則不在另一個sheet內顯示,如果超過±50,則會在另一個sheet的儲存格內帶入“1”
但這樣的寫法沒有辦法滿足需要
現在的想法是希望將sample那一列的各欄位值先各乘±3%後(±3%的值可設在某特定儲存格內),以±3%的值與讀值做比對,如果讀值在±3%以內,就判ok,超過時,則判ng
請問這樣的程式該怎麼寫
煩請各位大大解惑
謝謝

        sample        讀值        差異               -3%                                3%
1        2089.34        2076.98        12.36        2026.6598        2152.0202
2        2132.43        2035.23        97.2        2068.4571        2196.4029
3        1985.34        2010.22        -24.88        1925.7798        2044.9002
4        2205.42        2109.67        95.75        2139.2574        2271.5826
5        2004.56        2022.45        -17.89        1944.4232        2064.6968
作者: GBKEE    時間: 2011-7-24 07:53

本帖最後由 GBKEE 於 2011-7-24 15:50 編輯

回復 1# pcwater

[attach]7124[/attach]
  1.     Option Base 1                          '  Option Base  {0 | 1}  在模組層次中用來宣告陣列索引的預設下限0 或 1 。         
  2.     Sub Ex()
  3.     Dim AR(), A(), i As Integer
  4.     AR = [A2:B6].Value                  'sample,讀值 置入Ar陣列
  5.     ReDim A(UBound(AR), 1)              '重新宣告A陣列為Ar陣列大小
  6.     For i = 1 To UBound(AR)
  7.     If AR(i, 2) < AR(i, 1) * (1 - 0.03) Or AR(i, 2) > AR(i, 1) * (1 + 0.03) Then A(i, 1) = "Ng"
  8.                                         '計算以±3%的值與讀值做比對 超過時,則判ng 寫入A陣列
  9.     Next
  10.     Range("C2").Resize(UBound(A)) = A   '判定寫入樣放置的位置
  11. End Sub
複製代碼

作者: pcwater    時間: 2011-7-25 13:48

感謝版主
我先試一下




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