EXCEL VBA中明明遇到不符合继续运行的条件时,为什么还能继续运行? 如何让Excel vba根据条件自动暂停和继续?

作者&投稿:雀世 (若有异议请与网页底部的电邮联系)
设置一个中间变量k来记录是否三项都填有数据,如果填了,k=0,如果没有填,k=1,通过判断k的值来决定是否继续生成计算结果的窗口
Private Sub CommandButton1_Click()
Dim k As Integer
k = 0
If TextBox1 = "" Or TextBox3 = "" Or TextBox4 = "" Then
k = 1
MsgBox "三项数据必须完整"
If TextBox1.Value = "" Then TextBox1.SetFocus
If TextBox3.Value = "" Then TextBox3.SetFocus
If TextBox4.Value = "" Then TextBox4.SetFocus
Else
End If
If k = 0 Then
a = MsgBox("结果是:" & TextBox1.Value + TextBox3.Value + TextBox4.Value, vbOKCancel, "计算结果")
End If
End Sub

你想对三个输入强制非空,可用DO WHILE ......LOOP循环检查.
Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop
----------------------------------------------------
Do While TextBox1 = "" Or TextBox3 = "" Or TextBox4 = ""
MsgBox "三项数据必须完整"
If TextBox1.Value = "" Then TextBox1.SetFocus
elseIf TextBox3.Value = "" Then TextBox3.SetFocus
elseIf TextBox4.Value = "" Then TextBox4.SetFocus
end if
Loop

结果行 应该放到ELSE 下

Excel VBA 如果该条件发生错误,则运行下一条件~

如果CELLS(1,9)里面有非法字符,你这些语句全部都要失败。如果是为了解决重名,可以先检测是否有这样名字的表,使用下面的自定义函数检查:
Function SheetExists(nm) as Boolean Dim st as WorkSheet set st=nothing on error resume next set st=sheets(nm) on error goto 0 SheetExists = not st is nothingEnd Function主程序可以使用while一直循环,例如:
Dim i, nmi=0do nm = Worksheets(3).Cells(1, 9).Value if i>0 then nm = nm & "("& i &")" i=i+1loop until not SheetExists(nm)Worksheets(3).Name = nm

Sub t() a = "" Do While Not (a > 0 And a < 100) a = InputBox("请输入0到100的数:", "输入数据") Loop [A1] = aEnd Sub参考一下。

EXCEL VBA中明明遇到不符合继续运行的条件时,为什么还能继续运行?_百度...
答:设置一个中间变量k来记录是否三项都填有数据,如果填了,k=0,如果没有填,k=1,通过判断k的值来决定是否继续生成计算结果的窗口 Private Sub CommandButton1_Click()Dim k As Integer k = 0 If TextBox1 = "" Or TextBox3 = "" Or TextBox4 = "" Then k = 1 MsgBox "三项数据必须...

EXCEL 中VBA不符合内容删除
答:如下:Sub test() Dim Rng As Range For Each Rng In Range("A39:J144") If Rng.Value <> Range("B36").Value Then '不符合条件则删除,如需符合条件删除,可以把不等号改为等号“=” Rng.ClearContents End If Next RngEnd Sub ...

excel vba vlookup函数怎么老是出错?
答:如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值;如果“逻辑值”为FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。如果“查找值”为文本时,“逻辑值”一般应为 FALSE 。另外:·如果“查找值”小于“区域”第...

excel vba,如何判断A2单元格中的字符串是否为10位纯数字,如果不符合条 ...
答:Sub test() m = 0For i = 1 To Len([a2]) If InStr(1, "0123456789", MID([A2],I,1)) = 1 Then m = m + 1NextIf m <> 10 Then MsgBox [a2] & "不是纯数字" Else MsgBox [a2] & "是纯数字"End Sub

Excel VBA 数据比较求助高手
答:ctrl+g)里输入:print Range("A11")- Range("A6")会显示 2.8421709430404E-14 也就是说A11比A6大那么一点点点点,估计是导入的数据在exce里l的浮点运算误差造成的。原来的帖子我也看到了,强制类型以后精度变了,后面的位数被舍掉了,就相等了,对于不需要太精确的运算来说确实可以这样。

Excel的VBA代码解释?
答:Sub ek_sky()Dim arr1, i&, j '得到F1:Fx的区域,其中x取决于A列最后一个单元格的行,例如:A1到A10都有内容,A11开始就没内容了,那么arr1得到的区域就是F1:F10 arr1 = Range("f1:f" & Cells(Rows.Count, 1).End(3).Row)'i从1到arr1区域中单元格的数量 For i = 1 To UBound...

excel中if语句用vba怎么写
答:vba中的名称为iif,使用方法与函数完全一致,iif(条件,符合条件结果,不符合条件结果)。VBA中另外一种if表达方式更为常用,格式为 if 条件 then 执行结果或者 if 条件 then结果一结果二else if 条件结果end if4. VBA中的if语句常用来与for..next循环搭配使用,亦可用do while...Loop语句代替。

如何解决excel2003中编写vba宏在excel 2007中打开时出现“文档未保存...
答:4、系统本身存在漏洞,导致容易受到网络攻击。5、病毒问题也是主要导致内存不能为 Read、文件保护、Explorer.exe 错误……6、如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是 DX9.0C 版本不够新或者不符合该游戏、显卡...

为什么在EXCEL VBA中使用while语句时,条件成立却未进行循环
答:你应该用 do until ... loop 按你这样,一上来就不符合了,当然不循环

excel vba a = Cells(16, 1).Characters.Font.Color Cells(16, 1)明明...
答:a = Cells(16, 1).Font.Color 这样试试。建议学会调试,看对象的属性值。