Application.Match da tipo desajuste

Estoy intentando usar Application.Match sin embargo, está devolviendo un type mismatch error:13 error. ¿Por qué?

 Dim mySrs as Series Dim ws as Worksheet set ws Activesheet For Each mySrs in ActiveChart.SeriesCollection tempvar = mySrs.Name y = Application.Match(tempvar, ws.Range("P37:P71"), 0) MsgBox y 

Con toda probabilidad, no se encuentra ninguna coincidencia. En tal caso, Application.Match devuelve un código de error de Excel, es decir, una Variante / Error cuyo valor es el Error 2042 (esto corresponde a obtener #N/A en Excel).

Tal valor de Error no puede ser coaccionado implícitamente a una Cadena (que es lo que espera MsgBox ) y, por lo tanto, obtienes el tipo de desajuste.

Tenga en cuenta que se puede llamar a la misma función de Match utilizando WorksheetFunction.Match . La única diferencia es cómo se deben manejar los errores:

  • Con WorksheetFunction , los errores se tratan como errores de VBA, se pueden interceptar usando la syntax On Error .

  • Con la Application , devuelven un código de error Excel envuelto en una variante. Puede usar IsError para ver si la variable devuelta es una variante de tipo Error.