使用macros将包含variables的公式插入到单元格中

我有一个vbamacros,复制当前工作表,并重命名与当前date工作正常,现在我想它把公式单元格B22,我想要的公式是:

Current Sheet Previous Sheet ='08 May 2013'!B18 - '01-04-2013'!B18 

我一直试图让这个代码工作,但它把它作为一个string,而不是一个公式即=('[2013年5月!R2C18] – [2013年5月12日!R2C18])

 Dim sheet_name As String Dim activeSheet_name As String Dim shtName As Integer Dim activeShtName As Integer shtName = Sheets.Count - 1 activeShtName = Sheets.Count sheet_name = Sheets(shtName).Name activeSheet_name = Sheets(activeShtName).Name Sheets(activeSheet_name).Select Range("B22").Select ActiveCell.Formula = " = ('[" & sheet_name & " !R2C18] - [ " & activeSheet_name & " !R2C18])" 

任何帮助,将不胜感激

你的公式是错误的。 先在Excel中尝试,然后复制公式的文本,并与上面最后一行代码生成的文本进行比较。 将您的VBA代码更改为:

ActiveCell.FormulaR1C1 =“='”&sheet_name&“'!R18C2-'”&activeSheet_name&“'!R18C2”

请注意使用FormulaR1C1。 基本上你需要用单引号括住表格名称。