Board logo

標題: [發問] OptionButton 輸入設定 [打印本頁]

作者: 小華    時間: 2014-2-16 15:08     標題: OptionButton 輸入設定

請教各位先進大大

我要設定一個評分輸入系統 每個項目的分數都是唯一的。

我用Frame將各個OptionButton 分群組,現在遇到幾個問題:

1.如何設定每個OptionButton 輸入的值?   分數:1~5分

2.有甚麼寫法可以分辨Frame底下的OptionButton.value = ture  然後再輸入值??
作者: stillfish00    時間: 2014-2-17 15:09

回復 1# 小華
可以在US1中寫一個Function 計算

例如計算3P中的總分:
  1. Function CalSum_3P() As Integer
  2.   CalSum_3P = 0
  3.   For i = 1 To 55  'OptionButton1 to OptionButton55
  4.     If Me.Controls("OptionButton" & i).Value = True Then
  5.       CalSum_3P = CalSum_3P + (5 - (i - 1) Mod 5)
  6.     End If
  7.   Next
  8. End Function
複製代碼

作者: 小華    時間: 2014-2-17 19:18

回復 2# stillfish00


    這位先進 抱歉 因為我對於VBA還不是了解很多,所以我不太懂這一段程式要寫在哪個地方??

    可以請問你每句程式的意思嗎???
作者: stillfish00    時間: 2014-2-18 16:00

回復 3# 小華
回復 1# 小華
可以在US1中寫一個Function 計算

[attach]17515[/attach]
怎麼用?例如在CommandButton1_Click()中加入
  1. If ComboBox1.Value = "3P" Then MsgBox "總分 : " & CalSum_3P()
複製代碼
OptionButton都有自己的名稱,3P中的名稱是從OptionButton1到OptionButton55
因為是照順序又有規律 每次5個
依 OptionButton1  =>  5分
     OptionButton2  =>  4分
     .........依此類推
所以OptionButtonXX 的分數可以用(5 - (i - 1) Mod 5) 表示 (Mod是取餘數)
還有,因為function放在表單US1中,所以Me.Controls指的就是US1.Controls
作者: 小華    時間: 2014-2-18 22:05

回復 4# stillfish00


    謝謝這位先進的解說~~可是這段程式碼好像會直接把分數加總

我是需要將各個類別儲存單一的分數    例如:工作態度  3分    配合度  4分  等等......分別存在另一份EXCEL檔,當作資料庫

因為我不知道該如何寫程式  讓程式判別FrameXX底下的OptionButtonXX的值是不是TURE,如果是的話儲存分數到對應的儲存格。
作者: stillfish00    時間: 2014-2-19 11:47

回復 5# 小華
假設Frame底下都5個OptionButton,都按順序 :
  1. Function GetOption(ByRef vFrame As Variant) As Integer
  2.   Dim i
  3.   For i = 0 To vFrame.Controls.Count - 1
  4.     If vFrame.Controls(i).Value = True Then
  5.       GetOption = 5 - i
  6.       Exit For
  7.     End If
  8.   Next
  9. End Function
複製代碼
例 : CommandButton1_Click()中
  1. x.Cells(recond, 7) = GetOption(Me.Frame1)
  2. x.Cells(recond, 8) = GetOption(Me.Frame2)
複製代碼

作者: 小華    時間: 2014-2-19 19:20

回復 6# stillfish00


    感謝先進的幫助!~~~程式已經可以判別並且正確輸入了。

還有一些問題想請問:

1.請問這位先進所寫的程式碼代表的意思??  有太多看不懂的程式碼........
  想多了解程式碼的意思,在日後可以更加的應用

2.程式在分辨Page1~Page3.Enabled是否為true時可以正常運作,可是多選幾次之後  Page下面的資料都不見了??  必須要用滑鼠點一下該Page 才會顯示下面的資料
   請問這是甚麼問題呢?
作者: stillfish00    時間: 2014-2-19 21:12

本帖最後由 stillfish00 於 2014-2-19 21:15 編輯

回復 7# 小華
因為你只是把分頁設為可選,但是沒有選它
  1. MultiPage1.Page1.Enabled = False
  2. MultiPage1.Page2.Enabled = False
  3. MultiPage1.Page3.Enabled = False
  4. Select Case ComboBox1.Value
  5.   Case "3P"
  6.     MultiPage1.Page1.Enabled = True  '設為可選
  7.     MultiPage1.Value = 0  '選擇第1個page
  8.   Case "L1", "L2", "L3"
  9.     MultiPage1.Page2.Enabled = True  
  10.     MultiPage1.Value = 1  '選擇第2個page
  11.   Case "L4", "L5", "L6"
  12.     MultiPage1.Page3.Enabled = True
  13.     MultiPage1.Value = 2  '選擇第3個page
  14. End Select
複製代碼

作者: 小華    時間: 2014-2-20 20:42

回復 8# stillfish00


    謝謝這位先進的教導!~~~

對於程式語言   我要學的東西還很多

感謝先進不辭辛苦的教導!~~




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