excel - 处理 Excel VBA 中的错误 '13'(西类牙语中的变量和文本)

标签 excel vba

我正在创建一个宏来帮助用户通过文本框删除一行。用户需要点击 Eliminar hallazgo(删除结果)按钮。

Delete Finding

然后,会出现一个带有空文本框的表单,供用户填写将要删除的行号。

Delete Form

如果用户编写一个 Int,则宏运行正常(我不知道如何优化它)。但是当用户编写不同的东西时,宏会崩溃。

每当用户写任何不同的东西时,我都希望弹出一个 MsgBox,上面写着“请输入一个有效的数字”。

到目前为止,这是我的代码:

Private Sub AceptarButton_Click()

Dim row2Empty As Integer, rangoDel As Range

' Asignar valor escrito por usuario a Variable

row2Empty = TextFila.Value
On Error GoTo InvalidValue:
Exit Sub

Worksheets(5).Activate


If TextFila.Value = True Then
    Worksheets(5).Rows(row2Empty).Select
    Worksheets(5).Rows(row2Empty).Delete
End If

Unload Me

InvalidValue:
    MsgBox "Por favor digite un numero."
Resume Next

End Sub

我真的很困惑如何处理这个错误。

提前致谢,

海梅

最佳答案

处理此要求的最简洁方法是不允许输入除数字以外的任何内容。您可以通过回复 KeyPress 来做到这一点。事件:

Private Sub TextFila_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   'allow only numeric digits and the backspace key
   If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then KeyAscii = 0
End Sub

这种方法也允许您简化按钮单击事件中的逻辑。

关于excel - 处理 Excel VBA 中的错误 '13'(西类牙语中的变量和文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60324641/

相关文章:

forms - 如何在表单中自动将文本光标置于文本框中(而不是选择命令按钮)?

excel - VBA 不会改变所有单元格的格式

excel - 使用 VBA 仅引用 Excel 表格数据主体范围的一部分

excel - 显示带有超时值的消息框

excel - VB-Script 在调用 VBA-Script 后休眠

excel - .copyfromrecordset 没有响应

java - 下载 Excel 文件后重新加载 JSP 页面

vba - 改变工作驱动

excel - Application.FileDialog(msoFileDialogSaveAs) 以 .pdf 作为过滤器

excel - 数据透视表的移动位置