作者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/cn.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