標題:
[發問]
excel 類似時間碼錶寫法如何寫
[打印本頁]
作者:
ahsiek
時間:
2015-1-28 10:52
標題:
excel 類似時間碼錶寫法如何寫
各位大大們,想請你們幫忙想該如何寫
需求是,有一個變動值,若持續一分鐘都大於1,給我一個警示。
[attach]20146[/attach]
但一直想不到有什麼方法可以寫,目前是想說若用類似碼錶功能來記錄,是否可行?
如附檔上的內容: B2 和 C2 每秒都有變動值出現,而 B3值是 B2-C2 的絕對值
若 B3值 大於1的話,就記錄到 E欄裡,若小於1的話,就把E欄裡的記錄消除掉
若 E欄存滿60個記錄的話(等於一分鐘),就在 A1 警示我(變成紅色),讓我知道。
請問這個想法可行嗎?該如何寫呢?還是各位大大有別的想法可行呢?
這個問題困擾我好久,我一直想不到可行的方法。
希望各位能幫幫我,非常感謝。
作者:
owen06
時間:
2015-1-29 23:44
回復
1#
ahsiek
新增模組,將此代碼貼上試試
Sub test()
t = Now + TimeSerial(0, 0, 1)
If [b3] > 1 Then
[e3] = [e3] + 1
ElseIf [b3] <= 1 Then
[e3] = ""
End If
If [e3] >= 60 Then
[a1].Interior.ColorIndex = 3
Else: [a1].Interior.ColorIndex = 0
End If
Application.OnTime t, "test"
End Sub
複製代碼
作者:
ahsiek
時間:
2015-1-30 10:04
回復
2#
owen06
謝謝owen06大大的回覆
但有個地方你可能誤會我的意思了。
在 if [b3]>1 Then
[e3]=[e3]+1
這樣數值永遠都只會存在[e4] 裡,我需要的是,從 e3 一直記錄到 e61,超過 e61時,就警告我。
ElseIf [b3]<=1 Then
[e3] = ""
這裡若是空白來佔 E欄的空間的話,就會不準確,所以我傾向改為
ElseIf [b3]<=1 Then
Worksheets("Sheet1").Range("e3 : e61). Clear
所以我想問一下,若 b3 >1時,就記錄到e3到e61裡,這個寫法怎麼寫呢?
再麻煩大大了,謝謝。
作者:
owen06
時間:
2015-1-30 11:25
回復
3#
ahsiek
這樣子可以嗎?
Sub test()
t = Now + TimeSerial(0, 0, 1)
ELR = [e65536].End(3).Row
If [b3] > 1 Then
If [e3] = "" Then
[e3] = 1
Else: Range("E" & ELR + 1) = 1
End If
ElseIf [b3] <= 1 Then
Range("e3:e" & ELR) = ""
End If
If Application.Count([e:e]) >= 60 Then
[a1].Interior.ColorIndex = 3
Else: [a1].Interior.ColorIndex = 0
End If
Application.OnTime t, "test"
End Sub
複製代碼
作者:
准提部林
時間:
2015-1-30 13:56
若有問題,自行修改套用:
[attach]20161[/attach]
作者:
ahsiek
時間:
2015-2-2 09:11
回復
4#
owen06
謝謝owen06大大的幫忙,我剛剛測試了,是可行的。非常非常地謝謝你。
作者:
ahsiek
時間:
2015-2-2 09:11
回復
5#
准提部林
謝謝准提部林大大的提供。不過我的權美不足,沒有辦法下載。
作者:
准提部林
時間:
2015-2-2 11:04
本帖最後由 准提部林 於 2015-2-2 11:14 編輯
回復
7#
ahsiek
每秒記錄DDE變動值:
http://www.funp.net/107422
貼至網址列
程式預設10筆記錄時,顯示警示顏色及發出BEEP聲,請自行修改所需!
當程式執行中,可檢視其它工作表而不受影響,但儲存格進入編輯狀態時會暫停,須注意!
關閉檔案前,須按〔停止〕,並至少等一秒以上,再關閉檔案!
(若同時開啟多個檔案,只關閉本檔,一秒後可能會自動開啟,因等待下一秒執行的動作還存在,除非關閉整個EXCEL)
作者:
ahsiek
時間:
2015-2-3 12:20
回復
8#
准提部林
非常謝謝 准提部林大大 的分享和解釋。我來試試看!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)