English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

題目為:加班費給定方法:依職等給每個小時的加班費
職等:
A等 150元
B等 120元
C等 100元
D等 80元
我用select-case語法搭配Option該怎麼寫?

2007-01-17 16:15:08 · 2 個解答 · 發問者 ? 2 in 電腦與網際網路 程式設計

Dim t As Integer
Dim s As Integer
t = Text1.Text
Select Case t
Case Option1.Value = True: s = t * 150
Case Option2.Value = True: s = t * 120
Case Option3.Value = True: s = t * 100
Case Option4.Value = True: s = t * 80
End Select
MsgBox "您的加班費為" & s & "元"

目前只寫到這該如何修改?

2007-01-17 16:16:30 · update #1

http://www.wretch.cc/album/show.php?i=s860355&b=2&f=1435320903&p=0
編排樣式~

2007-01-17 16:19:29 · update #2

2 個解答

Select Case t 是針對 t 的值來分 你用錯了
假設 rank = 1, 2, 3, 或 4 代表著 Option1, Option2, Option3 或 Option4 的 Value 是 True
Select Case rank
Case 1: s = t * 150
Case 2: s = t * 120
Case 3: s = t * 100
Case 4: s = t * 80
End Select
rank 必須隨時跟著 Option? 的值更改 本程式才會對
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.

2007-01-18 04:30:27 · answer #1 · answered by JJ 7 · 0 0

方法一,指定 Option1 物件為陣件(修改 INDEX 屬性再複製多個物件),如此當 Option1 被使用時就會傳回 Index 值,利用這一個值進行判別

Private Sub Option1_Click(Index As Integer)
Dim optvalue As Integer
Dim answer As Integer
Select Case Index
Case 0
optvalue = 150
Case 1
optvalue = 120
Case 2
optvalue = 100
Case 3
optvalue = 80
End Select

If IsNumeric(Text1.Text) Then
answer = CInt(Text1.Text) * optvalue
MsgBox "您的加班費為" & answer & "元"
End If
End Sub


方法二,使用陣列值,使程式更簡化易維護


Private Sub Option1_Click(Index As Integer)
Dim answer As Integer
Dim optvalue() As Variant
optvalue = Array(150, 120, 100, 80)

If IsNumeric(Text1.Text) Then
answer = CInt(Text1.Text) * optvalue(Index)
MsgBox "您的加班費為" & answer & "元"
End If
End Sub

2007-01-18 06:50:35 · answer #2 · answered by ? 6 · 0 0

fedest.com, questions and answers