Excel 如何使以下代码在出现错误时继续? 如果CheckContractStart(moremoryBlock(i))“”则 单元格(RowCount+i,3)。值=格式(日期值(CheckContractStart(moreMorymyblock(i)),“dd-MMM-yyyy”) 其他的 单元格(行计数+i,3)。Value=“缺少” 如果结束

Excel 如何使以下代码在出现错误时继续? 如果CheckContractStart(moremoryBlock(i))“”则 单元格(RowCount+i,3)。值=格式(日期值(CheckContractStart(moreMorymyblock(i)),“dd-MMM-yyyy”) 其他的 单元格(行计数+i,3)。Value=“缺少” 如果结束,excel,vba,Excel,Vba,对于上述表达式 我只会在format()不为空时运行它。然而,我意识到,有时内容可能不是空的,而是不可格式化的内容,如“评论”,甚至可能是日期拼写错误,如missing/。因此,我只是想知道是否有一种方法可以让代码在出错时继续,并返回一个msgbox而不是完全停止?是的。在VBA中,您可以在出现错误时使用关键字 这只是两个用途,但与您的问题相关: 1) 关于错误转到标签这将转到标签,您可以通过写入该标签来定义该标签,您希望代码在错误发生后通过在其后面加一个分号继续执行标签: 2) 出错时继续下一

对于上述表达式


我只会在format()不为空时运行它。然而,我意识到,有时内容可能不是空的,而是不可格式化的内容,如“评论”,甚至可能是日期拼写错误,如missing/。因此,我只是想知道是否有一种方法可以让代码在出错时继续,并返回一个msgbox而不是完全停止?

是的。在VBA中,您可以在出现错误时使用关键字

这只是两个用途,但与您的问题相关:

1)
关于错误转到标签
这将转到
标签
,您可以通过写入该标签来定义该标签,您希望代码在错误发生后通过在其后面加一个分号继续执行
标签:


2)
出错时继续下一步
,这将完全忽略错误。您可能需要进行一点错误检查,以使代码更稳定,但这有时是必要的和/或有帮助的,即使这样做可能会很危险。

下一步请在错误恢复时用“。。。错误转到0

If CheckContractStart(MoreMemoryBlock(i)) <> "" Then
    Cells(RowCount + i, 3).Value = Format(DateValue(CheckContractStart(MoreMemoryBlock(i))), "dd MMM yyyy")
Else
    Cells(RowCount + i, 3).Value = "Missing"
End If
出错时继续下一步
如果CheckContractStart(moremoryBlock(i))“”则
单元格(RowCount+i,3)。值=格式(日期值(CheckContractStart(moreMorymyblock(i)),“dd-MMM-yyyy”)
其他的
单元格(行计数+i,3)。Value=“缺少”
如果结束
错误转到0
On Error Resume Next
If CheckContractStart(MoreMemoryBlock(i)) <> "" Then
    Cells(RowCount + i, 3).Value = Format(DateValue(CheckContractStart(MoreMemoryBlock(i))), "dd MMM yyyy")
Else
    Cells(RowCount + i, 3).Value = "Missing"
End If
On Error GoTo 0