When programming in any language also in VBA - it is better not to bind the user to specific regional settings or a specific version of Excel. So instead:
Formula = "=IFERROR(VLOOKUP(Q" & j & ";Table1[#All];2;FALSE);"""")" ThisWorkbook.Worksheets("Sheet1").Cells(j, "AE").FormulaArray = Formula
It is better to use this approach when you define the exact environment of the user:
s = Application.International(xlListSeparator) Formula = "=IFERROR(VLOOKUP(Q" & j & s +"Table1[#All]" + s + "2" + s + "FALSE)" + s + """"")" ThisWorkbook.Worksheets("Sheet1").Cells(j, "AE").FormulaArray = Formula
ps I did not check the formula for parentheses, etc., but simply indicated the correct use of the list separator and how to correctly insert the formulas with VBA code into the cells.
As in the previous post, Excel is likely to automatically change the formula when it opens. However, Excel does not automatically change the VBA code, so you should remember and pay attention to the correct code in VBA.
Silvestr
source share