获取VBA中InputBox返回的值

PHPz
发布: 2024-01-22 20:45:05
转载
662 人浏览过

获取VBA中InputBox返回的值

获取VBA中InputBox返回的值

Private Sub iCheckGs()

'--------验证密码

Dim iPsw$, i&, tmp

iPsw = " " '"300029"

Do

tmp = InputBox( _

"系统温馨提醒:" & Chr(10) & Chr(10) & _

"非专业用户请点击{取消}退出!" & Chr(10) & Chr(10) & _

"请输入密码(您还有 " & 3 - i & " 次机会!)")

If Len(tmp) = 0 Then Exit Sub

If CStr(tmp) = iPsw Then Exit Do

If i >= 2 Then

Application.DisplayAlerts = False

ThisWorkbook.Close False

Application.DisplayAlerts = True

End If

i = i + 1

Loop

'下面是密码通过后的代码

……

……

VB怎么在自定义函数中返回多个值

Sub 按钮1_Click()

Dim 周长 As Double, 面积 As Double, 半径 As Double

周长 = 0

面积 = 0

半径 = 15#

Call SubN(周长, 面积, 半径)

MsgBox 周长 & " " & 面积

End Sub

Sub SubN(ByRef 周长参数, ByRef 面积参数, ByVal 半径参数)

If 半径参数

周长参数 = 0

面积参数 = 0

Else

周长参数 = 2 * 3.14 * 半径参数

面积参数 = 3.14 * 半径参数 * 半径参数

End If

End Sub 以上代码是在Excel的VBA中调试的,可以满足的要。

vba返回值

首先你的ingN 和ingSN是整形数,如果单元格是小数怕是有问题。

另外

For Each rng2 In rng1.Cells

If rng2.Value "" Then

rng2.Select

ingTC = Val(ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value)

End If

Next rng2

结果ingTC一定是 0

循环到最后rng2.Value 是区域的最下面单元格

Val(ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value)

在区域下面的两行,一定是空了!

For Each rng3 In rng0.Cells

If rng3.Value = "" Then

shtV.Select

rng3.Select

ingN = Val(ActiveCell.Offset(-1, 0).Value)

End If

Next rng3

要看 rng0.Cells的情况

全是数据,根本不进入IF,

有2个以上的连续空单元,ingN必然为0。

按照你传上来的数据,运行一定为0

没看懂你要干什么,所以也不知道如何改。

另外

If rng2.Value "" Then

rng2.Select

ingTC = Val(ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value)

End If

写成

If rng2.Value "" Then

ingTC = Val(rng2.Offset(1, 0).Value + rng2.Offset(2, 0).Value)

End If

效率会高许多

以上是获取VBA中InputBox返回的值的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:docexcel.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板