Vba 使用宏将包含变量的公式插入单元格

Vba 使用宏将包含变量的公式插入单元格,vba,excel,Vba,Excel,我有一个vba宏,可以复制当前工作表,并使用当前日期对其进行重命名,现在我希望它在单元格B22中放入一个公式,我希望的公式是: Current Sheet Previous Sheet ='08 May 2013'!B18 - '01-04-2013'!B18 我一直在尝试让这段代码工作,但它是把它作为一个字符串,而不是一个公式 i、 e.=('[2013年5月8日!R2C18]-[2013年5月12日!R2C18]) 任何帮助都将不胜感激您的公式是错误的。首先在Excel中尝

我有一个vba宏,可以复制当前工作表,并使用当前日期对其进行重命名,现在我希望它在单元格B22中放入一个公式,我希望的公式是:

  Current Sheet       Previous Sheet
='08 May 2013'!B18 - '01-04-2013'!B18
我一直在尝试让这段代码工作,但它是把它作为一个字符串,而不是一个公式 i、 e.=('[2013年5月8日!R2C18]-[2013年5月12日!R2C18])


任何帮助都将不胜感激

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

ActiveCell.FormulaR1C1=“=”&sheet\u name&“!R18C2-”&activeSheet\u name&“!R18C2”


注意公式1c1的使用。基本上,您需要在工作表名称周围加上单引号。

感谢您的快速响应,但这不起作用,我不确定您是否理解我的意图,每个表作为日期作为变量表名和活动表名中的表名我需要公式将2013年5月8日表中B18单元格的值从2013年5月12日表中B18单元格中减去,并将答案放在2013年5月12日表中B22单元格中。希望这能让它更清晰。好的,我已经更改了上面的答案。您可以通过在Excel中首先执行该操作,将字符串复制并粘贴到VBA中,然后用您的工作表名称变量替换对工作表的引用,从而准确地计算出字符串需要是什么。感谢steveo40,这是一次成功的款待,我在这方面已经坚持了很长时间了。谢谢,不用担心,很高兴它能工作。如果现在一切正常,请将其标记为答案。谢谢字符串不是问题,只是知道语法你能推荐一些好书吗
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])"