IF這東西 真的很好用
用途在於判斷這的東西是否成立
不管是在儲存格 或者在VBA
但是函數的儲存格 目前判斷好像只能7還是8(有點忘記)
先來說說在函數中
通常用在哪個時候
我自己是用在考績評量的時候 所要發的年終獎金
例如:優等是可以領多少 甲等領多少....之類的
如果整個公司大概有20-30人
有時候沒注意到 真的會不小心把獎金欄位看錯
在儲存格函數公式可以
=IF(A2>=90,"優",IF(A2>=80,"甲",IF(A2>=70,"乙",IF(A2>=60,"丙","丁"))))
這樣 90(含)分以上顯示優
未滿90到80(含)分以上顯示甲
未滿80到70(含)分以上顯示乙
未滿70到60(含)分以上顯示丙
未滿60以下顯示丁
以上的優甲乙丙都可以改成數字,一樣要用" "
有一次發現我同事,一個一個判斷,在KEY正確的
就覺得好浪費時間呀....
10筆資料我就懶得KEY...何況破100,真佩服她...
好啦 要來講講困難的地方了
VBA中的IF這個東西
IF...then....elas
IF....then.....elasif.....elas
我用在....資料找查在讓他寫入在相對位置上
因為每個人習慣不一樣,排列的方式可能按照他們的工作,而有不同的排列方式...
因為每個人看的方式不一樣,又要依照他們的習慣,要改版...我沒有那麼多時間做那麼多事情
(所以後來用了VBA後,我盡量用VBA原本程式去寫)
所以我會用一個工作表,用一個按鍵變出,給不同人看的工作表
(其實可以用=工作表!'....之類的東西...但是因為某些原因這個東西有可能用A工作表帶入 也有可能用B工作表帶入)
內容大同小異(因為有刪減增加欄位或者只有改變排序方式)
所以我才生出這個東西 用IF來搜尋資料 顯示對應資料
ntl=WorksheetFunction.CountA(Columns(1)) '定義ntl的數字 等於A欄位沒有空白格數量
For x = 1 To ntl
For y = 1 To 100
If Sheets("甲工作表").Cells(2 + x, 1) = "" Then '甲工作表 A欄位是否空白
Sheets("甲工作表").Cells(2 + x, 8) = "" ' 如果甲工作表 A欄位是空白 那H欄位就空白
End If
If Sheets("甲工作表").Cells(2 + x, 8) = "" then '甲工作表 H欄位是否空白
If Sheets("甲工作表").Cells(2 + x, 1) = Sheets("乙工作表").Cells(y, 1) Then ' 如果甲工作表 A欄位 跟 乙工作表 A欄位是否一樣
Sheets("甲工作表").Cells(2 + x, 8) = Sheets("乙工作表").Cells(y, 12) ' '如果甲工作表 A欄位 跟 乙工作表 A欄位一樣 那甲工作表 H欄位是空白 等於 乙工作表 L欄位
End If
End If
Next y
Next x
以上其實關鍵字我都改掉了 且我盡量用簡易的方式說明 XD
其實跟儲存格函數IF概念差不多
函數 IF(條件,成立,不成立)
那VBA是 IF 條件 then 成立 else 不成立
那把IF內在包一個IF
IF A then A條件成立時
IF B then 當A條件成立時 判斷是否有符合B條線
C 在A條件成立時 也符合B條線時 執行C
Else D 在A條件成立時 但不符合B條線時 執行D
End IF
Else E 若不符合A條件 執行E
End IF
若按照上面VBA的例子 我只有寫A B C
當初在寫這個的時候 我寫得很複雜
而且當初被一些東西卡住 但今天再把東西寫清楚
發現我當初怎麼會寫不出來呢?(也忘了當初卡在哪裡 XD)
當初我寫成下面的樣子
IF A then A條件成立時
B 執行B條件
ElseIF C then 在A條件不成立時 確認是否有符合C條件
D 若不符合A條件 但符合C條件時 執行D
Else E 若不符合A條件 也不符合C條件時 執行E
End IF
End IF
我寫了 A C D
真的很亂...XD
昨天在寫另一篇文章 才想說也把之前有特別研究的部分 都在抓出來寫一寫
不然忘了 要抓回來 還要一段時間 (昨天忽然一看 也是看不懂我當初在寫那些鳥 而且程式還跑得出來 真厲害)
其實公式越簡單越好...
不要太複雜 不然之後要改
會一個頭兩個大
之後有空會在寫寫我之前其他的VBA 如果以後要用 還可以有參考文件看看
我沒有學過相關程式設計,我只有學過WORD和EXCLE基礎
VBA這東西完全沒有碰過
所以寫得不好 請原諒啦
迷之音:打完這篇 發現SUMIF的VBA 我好像也可以寫出來了耶....
參考資料:
https://blog.gtwang.org/programming/excel-vba-programming-if-then-else-condition/
留言列表