VBA on error goto 语句不能忽略错误?
If IsNumeric(Mid(str1, n, 1)) Then
On Error GoTo here
If Mid(str1, 1, n - 1) = Mid(str2, 1, n - 1) And Mid(str1, n, Len(str1) - n + 1) + 1 = Mid(str2, n, Len(str2) - n + 1) + 0 Then
p = p + 1
End If
Exit For
End If
Next
mid函数中Len(str2) - n + 1为负数的错误,上面用On Error GoTo here跳转,还是提示错误,如何忽略?上面为啥不能跳转? 展开
估计你用错了 VBA 代码,把 MID() 函数与 MID() 语句混用了。MID() 是 Excel 函数,而在 VBA 代码中,MID() 是语句,它的功能与 Excel 中的 MID() 函数不同。请看 MID 语句的帮助文档:
Mid 语句Mid statement
作用 将 Variant (String) 变量中指定数量的字符替换为其他字符串中的字符。
语法
Mid(stringvar、 start、[ length ])= string
Mid 语句语法包含以下部分:The Mid statement syntax has these parts:
PartPart
说明Description
stringvarstringvar 必需。Required. 要修改的字符串变量的名称。Name of string variable to modify.
startstart 必需;Variant (Long)。Required; Variant (Long). stringvar 中开始文本替换的字符位置。Character position in stringvar where the replacement of text begins.
Lengthlength 可选;Variant (Long)。Optional; Variant (Long). 要替换的字符数。Number of characters to replace. 如果省略,则将使用所有 string。If omitted, all of string is used.
stringstring 必需。Required. 用于替换 stringvar 的字符串表达式。
函数没错,怎么用命令忽略参数为负的错误
首先,Mid(str1, 1, n - 1) = Mid(str2, 1, n - 1) 是字符串替换语句,不是比较语句;
其次,Mid(str2, 1, n - 1) 中的 str2 是什么?它与 str1 是什么关系?它的字符个数与 str1 一样吗?