我正在使用该Application.match函数来查找我正在查找的列标题的列号。如果没有一个标题匹配,我想要一个自定义的弹出消息框。
在到达 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应该是 a Variant(用 隐式声明Dim col_num或用 显式声明Dim col_num As Variant)。
| 归档时间: | 
 | 
| 查看次数: | 3189 次 | 
| 最近记录: |