跳至內容

獲取VBA中InputBox返回的值

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

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返回的值的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。