我正在使用Application.match
函数来查找我要查找的列标题的列号。如果所有标题都不匹配,我想要一个自定义的 pop MsgBox。
在到达IfError语句之前,Excel停止了我的程序并显示一个MsgBox,提示没有匹配项
col_num = Application.WorksheetFunction.Match("wanted name", theDataWS.Rows(1), 0)
If IsError(col_num) Then
MsgBox "Please rename your column name to 'wanted name'"
End If
最佳答案
一种选择是使用Application.Match
而不是Application.WorksheetFunction.Match
。
如果没有匹配项,
Application.WorksheetFunction.Match
将抛出运行时错误。如果需要,可以使用On Error...
语句捕获并处理它,或者在这种情况下最好使用Application.Match
。 Application.Match
不会抛出运行时错误;相反,变量col_num
将保存错误值(在这种情况下,错误2042对应于#N/A
)。这样就可以测试IsError(col_num)
了。* *请注意,在这种情况下,
col_num
应该是Variant
(使用Dim col_num
隐式声明或使用Dim col_num As Variant
显式声明)。
关于excel - 如何使用Application.WorksheetFunction.Match捕获错误并进行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54601850/