首頁 >電腦教學 >電腦知識 >取得VBA中InputBox傳回的值

取得VBA中InputBox傳回的值

PHPz
PHPz轉載
2024-01-22 20:45:05671瀏覽

取得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刪除