返回列表 上一主題 發帖

[發問] 當符合條件時回傳Sample time & 其儲存格列號

回復 10# marklos

複製下列代碼貼上去取代舊的就行了
  1. Private Sub CommandButton1_Click()
  2. [g5,h5] = ""
  3. For Each cu In Range("d2:d" & [a65536].End(3).Row)
  4. If cu.Value < [g2] Then
  5.   [g5] = cu.Offset(0, -2).Value
  6.   [h5] = cu.Row
  7.   [g7] = Application.Count(Range("e2:e" & cu.Row)) / 3600
  8.   [h7] = Application.Sum(Range("e2:e" & cu.Row)) / 3600
  9.   Exit Sub
  10. End If
  11. Next
  12. End Sub
複製代碼

TOP

回復 9# owen06


    Xl0000225.rar (102.61 KB)
如果在同一工作表內有兩筆資料需要個別檢察並顯示該如何?

TOP

回復 10# marklos


    將下列代碼複製貼上取代原有的內容
  1. Private Sub CommandButton1_Click()
  2. [g5,h5,g8,h8,o5,p5,g8,h8] = ""
  3. For Each cu In Range("d2:d" & [a65536].End(3).Row)
  4. If cu.Value < [g2] Then
  5.   [g5] = cu.Offset(0, -2).Value
  6.   [h5] = cu.Row
  7.   [g8] = Application.Count(Range("e2:e" & cu.Row)) / 3600
  8.   [h8] = Application.Sum(Range("e2:e" & cu.Row)) / 3600
  9.   GoTo 99
  10. End If
  11. Next
  12. 99  For Each cu2 In Range("m2:m" & [j65536].End(3).Row)
  13. If cu2.Value < [o2] Then
  14.   [o5] = cu2.Offset(0, -2).Value
  15.   [p5] = cu2.Row
  16.   [o8] = Application.Count(Range("p2:p" & cu2.Row)) / 3600
  17.   [p8] = Application.Sum(Range("p2:p" & cu2.Row)) / 3600
  18.   Exit Sub
  19. End If
  20. Next
  21. End Sub
複製代碼

TOP

回復 8# owen06

若以G2 current (A) <0.15為基準, 我是取<0.15但最接近0.15的第一筆資料, 那就是0.149 第45列

你取的值是 1.1494 第30列,其實我也不太了解版大要的是哪一種,

沒關希提供不一樣的答案供參考

TOP

回復 7# marklos


先名稱定義
PW=OFFSET(工作表1!$E$1,,,VALUE(工作表1!$H$5))

公式改為如下
=COUNT(E2:E61)/3600  --> =COUNT(PW)/3600
=SUM(E2:E61)/3600 --> =SUM(PW)/3600

TOP

感謝您的大力幫忙~

TOP

回復 13# owen06


    感謝您的大力幫忙

TOP

回復 13# owen06


    如果[g8]要變更成計算時間差,如下~~VBA要怎麼寫~
=TEXT(g5-B2+(g5<B2),"[ss]"/3600

TOP

回復 9# owen06


    如果符合條件還要加入連續出現5次以上才回傳Sample time & 儲存格列號 , 要怎麼做呢?

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題