作者waiter337 (給開司一罐蘇格登)
看板Office
標題[問題] vba發現表單有空白,跳出msbox,並停止
時間Thu Sep 22 18:40:24 2016
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:
版本:
目前textbox1 是vba表單中的一個姓名輸入位置
當我發現他沒輸入東西,或者為數字跟標點符號時
原設定為"新增資料"的按扭
按下之後會發現錯誤,跳出msbox,並停止vba的運作
(甚至是當輸入完成換行時,輸入不符規格,就會自動跳出警告視窗)
目前卡住不會寫
If TextBox1.Value = False Then
end if
目前google"停止 vba 巨集"大神
大部份都是停止excel顯示錯誤警告視窗的巨集
求高手支援
另外問一下
我總共有
TextBox1.Value = False
TextBox2.Value = False
TextBox3.Value = False
TextBox4.Value = False
TextBox5.Value = False
TextBox6.Value = False
TextBox7.Value = False
TextBox8.Value = False
TextBox9.Value = False
TextBox10.Value = False
TextBox11.Value = False
TextBox12.Value = False
TextBox13.Value = False
TextBox14.Value = False
這些需要判斷
是需要每個各做一次,還是有一次找尋的方法
但我猜可能還是得一個一個做
因為警告視窗得顯示未輸入的空白格子
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.158.244
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1474540826.A.591.html
※ 編輯: waiter337 (114.35.158.244), 09/22/2016 18:43:15
※ 編輯: waiter337 (114.35.158.244), 09/22/2016 18:46:41
※ 編輯: waiter337 (114.35.158.244), 09/22/2016 18:47:24
1F:推 Metal5566: UNLOAD userform1 09/22 20:37
2F:→ waiter337: If TextBox1.Text = "" Then MsgBox ("舊車主空白") 09/22 21:22
3F:→ waiter337: Exit Sub 09/22 21:22
4F:→ waiter337: End If 09/22 21:22
5F:→ waiter337: 有時後會跳出 有END IF 卻沒有 IF 09/22 21:37
6F:→ waiter337: 好像是不用end if 的 if種類 09/22 21:45
7F:→ waiter337: 我刪掉繼續hkhk43 09/22 21:45
8F:→ waiter337: 繼續測 09/22 21:45
9F:→ waiter337: 已解決 09/22 21:49
可是我出現另一個問題
假設14個都空白沒填
他的msgbox就會跳14次= =
該怎麼做讓他只跳最前面那次警告
後面沒填的警告先不跳
而且我還可以順便exit sub
避免錯誤的資料進入database
※ 編輯: waiter337 (114.35.158.244), 09/22/2016 22:15:38
10F:→ soyoso: 迴圈,內判斷textbox是否為空白,如只跳最前面那次的話 09/23 09:39
11F:→ soyoso: 就當第1筆空白時,執行msgbox訊息,再執行回文的exit sub 09/23 09:41
https://goo.gl/zoPWzG
裡面的msgbox每項皆不同
該如何撰寫
for ii = 1 to 14
if textbox & ii & .text = "" then msgbox
exit sub
next
--------------------------------------
If TextBox1.Text = "" Then MsgBox ("舊車主空白")
If TextBox2.Text = "" Then MsgBox ("舊車牌空白")
If TextBox3.Text = "" Then MsgBox ("引擎號碼空白")
If TextBox4.Text = "" Then MsgBox ("電話空白")
If TextBox5.Text = "" Then MsgBox ("手機空白")
If TextBox6.Text = "" Then MsgBox ("身份證字號空白")
If TextBox7.Text = "" Then MsgBox ("出生年月日空白")
If TextBox8.Text = "" Then MsgBox ("新車主空白")
If TextBox9.Text = "" Then MsgBox ("新車牌空白")
If TextBox10.Text = "" Then MsgBox ("引擎號碼空白")
If TextBox11.Text = "" Then MsgBox ("身份證字號空白")
If TextBox12.Text = "" Then MsgBox ("出生年月日空白")
If TextBox13.Text = "" Then MsgBox ("機種空白")
※ 編輯: waiter337 (114.35.158.244), 09/23/2016 15:17:33
12F:→ waiter337: 迴圈寫出不同的敘述 是否要在增加一個變數 09/23 15:18
13F:→ waiter337: 還是說用exit for 09/23 15:19
14F:→ soyoso: 用controls來指定到textbox的名稱 09/23 15:27
15F:→ soyoso: 如檔案內textbox後為連續流水號,可用"textbox" & ii的方 09/23 15:28
16F:→ soyoso: 式 09/23 15:28
17F:→ waiter337: 等下研究一下 09/23 15:36
18F:→ waiter337: 如果改用補助欄 09/23 15:36
19F:→ waiter337: Msgbox("a" & ii) 然後補助欄放在其他頁面a1~a14 09/23 15:37
20F:→ waiter337: Controls 目前還沒用過 我先google一下 09/23 15:38
21F:→ soyoso: 抱歉,補助欄是?輔助欄嗎? 09/23 15:43
22F:→ soyoso: Msgbox("a" & ii) 然後補助欄放在其他頁面a1~a14是指 09/23 15:44
23F:→ soyoso: msgbox引內儲存格a1~a14的值嗎? 09/23 15:46
24F:→ waiter337: 對 09/23 15:47
25F:→ soyoso: 如果引用儲存格的值,寫法上就不正確了 09/23 15:47
26F:→ soyoso: 應是range或cells來指定 09/23 15:49
27F:→ waiter337: 抱歉,我還是寫不出來 09/23 17:14
29F:→ waiter337: 太感謝了 09/23 18:08
30F:→ waiter337: 麻煩幫我看一下這樣寫有沒有其他問題 09/23 18:08
lable1 是表單格子前面的名稱
Private Sub CommandButton1_Click()
For ii = 1 To 14
x = Controls("Label" & ii)
If Controls("textbox" & ii) = "" Then
MsgBox " 注意 " & x & " 空白.": Exit Sub
End If
Next
End Sub
vba跑的了
※ 編輯: waiter337 (114.35.158.244), 09/23/2016 18:12:29
31F:→ soyoso: label方面要實際是否調整流水號同textbox 09/23 18:28
32F:→ soyoso: 因原本提供的檔案內是無對應上的 09/23 18:29
33F:→ waiter337: 是的 後來我又重新調整過了表單上的排序 09/23 18:30
34F:→ waiter337: Label1會對上textbox1 09/23 18:31
35F:→ waiter337: 另外 09/23 20:11
Private Sub CommandButton31_Click()
For jj = 1 To 14
y = Controls("frame" & jj).Caption
If Controls("OptionButton" & jj).Value = True Then
MsgBox " 注意 " & y & " 空白.": Exit Sub
End If
Next
End Sub
由於框架frame1 與 按扭選項OptionButton1 是沒有遞增邏輯的
我想抓取frame1的名稱 "處理種類"
(或許之後我在設個列表,甚至是其他排序)
其下有3個按扭選項
利用
OptionButton1
OptionButton2
OptionButton3
來判斷是否有點選這樣
是否三個內有點選任1,或許本身frame1,有true跟false能夠判斷
是否有選擇其一了,不過也只能選一個
※ 編輯: waiter337 (114.35.158.244), 09/23/2016 20:17:54
或者大大們有沒有什麼類似的範本
像是vba的資料輸入表,各行各業的都可以
借我參考 我自己研究看看
我先google一下
※ 編輯: waiter337 (114.35.158.244), 09/23/2016 20:24:16
36F:→ soyoso: 迴圈於各frame內,判斷controls為OptionButton是否有任一 09/23 21:27
37F:→ soyoso: 個被選取 09/23 21:27