Excel 2010 VBA匹配function找不到匹配项

在Excel 2010中,下面的MATCH语句不起作用。 该函数应返回由datasetId(应该是唯一的)标识的数据集的行号,如果datasetId不存在,则返回0。 无论datasetId是否存在于第一列,函数总是进入第二个分支并返回0

Function findDataset(dataWorksheet As Worksheet, datasetId As String) As Integer If Not VBA.IsError(Application.Match(datasetId, dataWorksheet.Columns(1), 0)) Then findDataset = Application.Match(datasetId, dataWorksheet.Columns(1), 0) Else findDataset = 0 End If End Function 

你的函数没有什么根本的错误:

 Function findDataset(dataWorksheet As Worksheet, datasetId As String) As Integer If Not VBA.IsError(Application.Match(datasetId, dataWorksheet.Columns(1), 0)) Then findDataset = Application.Match(datasetId, dataWorksheet.Columns(1), 0) Else findDataset = 0 End If End Function Sub MAIN() Dim ws As Worksheet Dim id As String, n As Integer Set ws = Sheets("Sheet1") id = "XX" n = findDataset(ws, id) MsgBox n End Sub 

适合我…………..也许你的比赛是不完全的。