我有一個excel電子表格,有兩列,一列有練習列表(其中33個)和每個列表的數量。我真正想要的是一個程序,選擇一個隨機練習,用它的代表數顯示它,並且有一個按鈕表示「完成?」。當你點擊它時,我需要一個倒計時20分鐘的計時器,選擇一個新的練習並等待,直到你點擊完成,然後重複。基於時間的練習VBA腳本
我知道這不難,但我不是任何程序員。如果任何人有教程或其他方式做這個(閃光?),我會非常感激。
由於提前, 周杰倫
我有一個excel電子表格,有兩列,一列有練習列表(其中33個)和每個列表的數量。我真正想要的是一個程序,選擇一個隨機練習,用它的代表數顯示它,並且有一個按鈕表示「完成?」。當你點擊它時,我需要一個倒計時20分鐘的計時器,選擇一個新的練習並等待,直到你點擊完成,然後重複。基於時間的練習VBA腳本
我知道這不難,但我不是任何程序員。如果任何人有教程或其他方式做這個(閃光?),我會非常感激。
由於提前, 周杰倫
你所要求的是不是太困難,但不是那麼容易解釋,如果你不習慣使用用戶窗體等
相反,我想出了一個更簡單的解決方案,可以滿足您的需求。爲了解決這個問題,我假定所有的練習都列在列A中,列在列B中。以下代碼將隨機選擇一個練習,突出顯示所選擇的選項,然後在列C中顯示從20分鐘到0,間隔1分鐘。作爲一個可視化:
A B C
1 Bench press 20 reps
2 Abs 10 reps
3 Lateral raise 15 reps 14 mins <-display of minutes remaining
4 Bicep curl 8 reps
5 Calf raise 10 reps
6 etc
要做到這一點,首先添加下面的代碼模塊(ALT + F11,然後插入>模塊)
Sub StartExercise()
'Get number of exercises
Dim NumberOfExercises As Integer
NumberOfExercises = Range("A1").End(xlDown).Row - 1
'Reset font to normal black and clear anything in column C
Range("A1:B" & NumberOfExercises + 1).Font.Bold = False
Range("A" & NumberOfExercises + 1 & ":" & "B" & NumberOfExercises + 1).Font.ColorIndex = 1
Range("C1:C" & NumberOfExercises + 1).Clear
'Select a random exercise
Dim RandomExercise As Integer
RandomExercise = Int(Rnd() * (NumberOfExercises - 1 + 1) + 1)
'Highlight selected exercise and reps
Range("A" & RandomExercise + 1 & ":" & "B" & RandomExercise + 1).Font.Bold = True
Range("A" & RandomExercise + 1 & ":" & "B" & RandomExercise + 1).Font.ColorIndex = 3
'Countdown from 20 minutes to 0
SetCountDown RandomExercise
End Sub
Sub SetCountDown(TargetCellRow As Integer)
Dim MinsRemaining As Integer
Dim iMins As Integer
MinsRemaining = 20
For iMins = MinsRemaining To 0 Step -1
Range("C" & TargetCellRow + 1).Value = iMins & " mins"
Application.Wait (Now + TimeValue("0:01:00"))
Next iMins
End Sub
最後,在您的電子表格你將需要一種啓動代碼的方式。
選擇查看>工具>表格然後從菜單中點擊Button
並在電子表格的任意位置繪製它。在指定宏對話框中,您應該看到「StartExercise」作爲選項。選擇此選項並單擊確定。
現在,當你點擊你的按鈕時,你應該看到一個練習和一些代表將以粗體,紅色字體突出顯示,'20分鐘'出現在旁邊。然後這將倒計數到0分鐘。如果你再點擊按鈕,你可以從頭開始重複隨機練習。
希望這會有所幫助。
這個岩石!這讓我想要鍛鍊更多! :) – 2010-03-10 20:34:37
謝謝!它完美的工作! – Jeremy 2010-03-11 05:11:57
好消息 - 很高興它解決了,你可以在健身房裏忙碌起來!還有一件事,如果解決方案適合您,那麼在本網站上點擊'打勾'標記接受答案將被視爲禮貌。這樣,其他幫助者可以看到該解決方案已被接受,並且不需要進一步的幫助 – 2010-03-11 08:15:26