取消一个InputBox后退出子
我正在创build一个允许用户input密码的input框,我希望它能够包含文本和数字。 如果可能的话,我希望它允许特殊字符。
我目前的InputBox是这样的:
Sub NewPass() Dim Pass As String, OldPass As String, ws As Worksheet OldPass = Ark2.Range("B6").Value Pass = Application.InputBox("Enter new password", Type:=2) If Not Pass = vbNullString Then For Each ws In ThisWorkbook.Worksheets ws.Unprotect Password:=OldPass ws.Protect Password:=Pass, UserInterfaceOnly:=True Next Ark2.Range("B6").Value = Kode End If End Sub
但是由于某些原因,它在点击取消或提示的angular落处的X时仍然进入循环。
我已经尝试过与VbNullString
, 0
和""
运气,但到目前为止,他们都没有工作,0结束与Run-time Error '13': Type Mismatch
在if语句。
而不是使用pass = vbNullString
作为你的条件,你可以使用pass = FALSE
当用户点击取消时,它把值'FALSE'放到你的variables中。
由于您在用户点击取消时正在使用application.inputbox
,它将返回FALSE而不是null。 如果你只使用pass = inputbox(...)
它会给你一个空string。
当用户点击“确定”与application.inputbox
; 将该字段留空,则输出将为空string。
application.inputbox
一大优点是它可以限制用户可以input的内容。如果你不需要任何限制,inputbox函数会更好。 当用户点击“确定”而不input任何内容,并且当用户点击“取消”
Sub NewPass() Dim Pass As String, OldPass As String, ws As Worksheet OldPass = Ark2.Range("B6").Value Pass = InputBox("Enter new password") If Not Pass = VBNullSTring Then For Each ws In ThisWorkbook.Worksheets ws.Unprotect Password:=OldPass ws.Protect Password:=Pass, UserInterfaceOnly:=True Next Ark2.Range(WB6").Value = Kode End If End Sub
- 使用忽略false值子句的IF语句
- Excel检查每行不同单元格中的值
- 用PythonparsingExcel Pandas 0.18 => 23,999(欧式)被parsing为23999
- C#:Chrome – 用户下载一个Excel文件
- Excel 2016'MATCH','ISERROR','IF'公式,结果取决于匹配; 引用结果附近的单元格
- SOAPUI:无法parsing类XSSFWorkBook错误
- Excel VBA:将CompareMode设置为TextCompare与“Dictionary”时,“无效过程调用或方法”
- VBAmacros在特定的工作表上运行
- 如何使用Interop设置Excel标签颜色