Range.Formula应用程序定义的错误

objSheet.Range("L20").Formula = _ "=INDEX(Sheet2!B2:B4824;MATCH(Sheet!F16;Sheet2!A2:A4824; 0))" 

为什么这条线路失败? 我已经尝试过静态和dynamic单元格引用。 我试过Range.FormulaCells.Value等…无济于事。 我甚至做了一个单独的函数,构造string,所以我可以调用variables,而不是直接的string,但没有骰子。 还尝试了几种不同的方式来说明范围。

工作表命名正确(公式工作时没有打嗝时手动插入)和objSheet定义(macros的其余部分工作正常)。 删除objSheet什么都不做。

我究竟在想什么?

你正在使用分号。 你需要使用逗号。

 objSheet.Range("L20").Formula = "=INDEX(Sheet2!B2:B4824;MATCH(Sheet!F16;Sheet2!A2:A4824; 0))" 

应该

 objSheet.Range("L20").Formula = "=INDEX(Sheet2!B2:B4824,MATCH(Sheet!F16,Sheet2!A2:A4824, 0))"