If you want to use a Scripting Dictionary object for better performance, you'd realize even better performance by SORTING your lookup table on its 1st column in ascending order.
Since your lookup table is in another workbook, next best would be copying the VALUES of '[MyFile]Hoja'!A13:A500 into a range somewhere in ThisWorkbook, use the column immediately to the right of it to store sequential integers from 1 to 488, sort that 2-column range on its 1st column in ascending order, then use range matches in that range's 1st column to get the row indices in that range's 2nd column for the range in MyFile. That is, with that other range set as the VBA variable xrng, it'd work something like
On the other hand, if you're closing MyFile and you want formulas then referring to a range in a closed workbook, external references into close workbooks are ALWAYS slow.
Bookmarks