105.03.10 第2次上課 (範例-02邏輯函數.xls)
01_兩重邏輯與多重邏輯函數判斷
Excel
IF=(邏輯判斷式 , 成立時執行 , 不成立時執行)
第二重、第三重~~的邏輯判斷就是在前一重的「不成立時執行」要進行的部分
例題:分數80以上為 A,70~79為 B,60~69為 C,不及格為 D
G2=IF(E2>=80,"A",IF(E2>=70,"B",IF(E2>=60,"C","D")))
可以拆解成
G2=IF(E2>=80,”A”,_______________
IF(E2>=70,”B”,_______________
IF(E2>=60,”C”, “D”)))
02_兩重邏輯轉為VBA
Private Sub 成績()
r = Range("A1").End(xlDown).Row
For i = 2 To r
If Cells(i, "E") >= 60 Then
Cells(i, "I") = "及格"
Else
Cells(i, "I") = "不及格"
End If
Next
End Sub
03_多重邏輯轉為VBA說明
VBA
IF 判斷式1 then
判斷式1 成立時執行
ElseIf 判斷式1不成立時,判斷式2 then
判斷式2 成立時執行
Else: 都不成立時執行
End If
Private Sub 成績多重()
'取得目前有資料的列數=總共有多少列
r = Range("A1").End(xlDown).Row
'第一列是標題欄
For i = 2 To r
If Cells(i, "E") >= 80 Then
Cells(i, "K") = "A"
ElseIf Cells(i, "E") >= 70 Then
Cells(i, "K") = "B"
ElseIf Cells(i, "E") >= 60 Then
Cells(i, "K") = "C"
Else: Cells(i, "K") = "D"
End If
Next
End Sub
04_如何利用InputBox取得不同的合格分數
Private Sub 成績()
'InputBox
x = Application.InputBox("請輸入合格分數", Type:=1)
Cells(6, "J") = "合格分數=" & x
r = Range("A1").End(xlDown).Row
For i = 2 To r
If Cells(i, "E") >= x Then
Cells(i, "I") = "及格"
Else
Cells(i, "I") = "不及格"
End If
Next
End Sub
備註
Application.InputBox 方法 (Excel) 的參數說明
05_如何分享自訂函數給其他人(增益集)
檔案另存成 excel增益集→儲存在excel增益集資料夾
檔案→選項→增益集→excel增益集 執行,勾選增益集的名稱(檔案名稱)→之後excel在插入函數,使用者定義就會有新增的自訂函數
06_如何取消增益集
開發人員→增益集,取消勾選,或者從瀏覽中找到檔案再刪除
07_如何改為VBA的自訂函數
Private Function 成績函數(平均成績)
If 平均成績 >= 60 Then
成績函數 = "合格"
Else: 成績函數 = "不合格"
End If
End Function
Private Function 成績函數多重(平均成績)
If 平均成績 >= 80 Then
成績函數多重 = "A"
ElseIf 平均成績 >= 70 Then
成績函數多重 = "B"
ElseIf 平均成績 >= 60 Then
成績函數多重 = "C"
Else: 成績函數多重 = "D"
End If
End Function
08_如何設計表單將EXCEL當成資料庫存資料
流程
1)插入表單
插入→自訂表單
2)設計表單欄位與按鈕
3)撰寫VBA程式碼
在按鈕點兩下,就會進入點擊按鈕的程序編輯
詳細的表單設計與資料賦值可以參考VBA表單設計
09_如何啟動表單(按鈕與當EXCEL開啟)
1)按鈕啟動,指定巨集
新增程序
表單.show
Private Sub 啟動表單()
home.Show
End Sub
2)excel開啟時啟動