Instead of the isna, you could use countif to see if the lookup value is in the range, if it is then have the vlookup return. If the retun is an error message, you'll know there is an issue with the lookup or the data.
=IF(COUNTIF(Sheet1!$B$1:$B$44,b2)>0,VLOOKUP(B2;Sheet1!$B$1:$I$44;8;FALSE),0)