VBA on error goto 语句不能忽略错误?

Forn=1ToLen(str1)IfIsNumeric(Mid(str1,n,1))ThenOnErrorGoTohereIfMid(str1,1,n-1)=Mid(s... For n = 1 To Len(str1)
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跳转,还是提示错误,如何忽略?上面为啥不能跳转?
展开
 我来答
lu_zhao_long
2020-02-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:2635万
展开全部

估计你用错了 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 一样吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式