作者jbear79810 (J熊)
看板Office
標題[問題] EXCEL VBA滿足條件依序詢問並回傳數值
時間Mon May 25 00:04:31 2020
軟體:EXCEL VBA
版本:2016
問題:
如何用VBA去檢視下列工作表中
當B欄位<=0時會跳出USERFORM1
然後有TEXTBOX讓你輸入O(圈)或X(叉)回傳至C欄位
而且是依序詢問
我的能力只到設條件然後只要TEXTBOX輸入O(圈)
只要B欄位是<=0的,C欄位就全部變成O(圈)...
※我是想要可以按照欄位依序詢問
從B1開始
B1<0,跳出請您輸入值 您輸入O(圈) C1欄位=O(圈)
B2<0,跳出請您輸入值 您輸入X(叉) C2欄位=X(叉)
....依序跳出視窗詢問處理情形
直到碰到B欄位>0時停止這項工作
A B C(處理情形)
1 小明 -5 O(圈)
2 小華 -3 X(叉)
3 小美 0 O(圈)
4 小天 3 V(可以停止詢問)
第一次詢問如有觸犯版規 請告知後自行刪文
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.155.46 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1590336273.A.13B.html
1F:→ soyoso: 以內文想法的話,迴圈於b欄並將變數(可為迴圈起始值、集合 05/25 03:06
2F:→ soyoso: 的元素或迴圈內自訂的變數來累加)設為public,if判斷b欄的 05/25 03:06
3F:→ soyoso: 值是否小於等於0,符合userform1.show,texebox方面以 05/25 03:06
4F:→ soyoso: textbox_change來觸發事件,如變數是集合的元素以range, 05/25 03:06
5F:→ soyoso: 則直接range.offset,如是數值則以range(..)或是cells(..) 05/25 03:06
6F:→ soyoso: 的方式來寫入textbox的值到c欄,unload userform1;另外" 05/25 03:06
7F:→ soyoso: 直到碰到B欄位>0時停止這項工作"如果是指迴圈一旦判斷大於 05/25 03:06
8F:→ soyoso: 0時,就跳出迴圈的話,那前述所說的變數也不用設為public 05/25 03:06
9F:→ soyoso: ,直接設變數於textbox_change內來累加就好,跳出迴圈exit 05/25 03:06
10F:→ soyoso: for或exit do(就看是用哪一種) 05/25 03:06