在 VBA 中使用任何语言进行编程时 - 最好不要将用户绑定到特定的区域设置或特定的 excel 版本。所以代替这个:
Formula = "=IFERROR(VLOOKUP(Q" & j & ";Table1[#All];2;FALSE);"""")"
ThisWorkbook.Worksheets("Sheet1").Cells(j, "AE").FormulaArray = Formula
当您确定确切的用户环境时,最好使用这种方法:
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 我没有检查括号等的公式,而只是指出了列表分隔符的正确用法,以及如何以正确的方式在单元格中插入带有 VBA 代码的公式。
同样,正如之前的帖子所说 - excel 可能会在您打开它时自动更改公式。但是,excel 不会自动更改 VBA 代码,因此请注意并注意 VBA 中的正确代码。