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

时间:2013-05-13 14:13:06

标签: excel vba excel-vba

我有一个复制当前工作表的vba宏,并使用当前工作正常的日期重命名它,现在我希望它在单元格B22中放置一个公式,我想要的公式是:

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

我一直试图让这段代码工作,但是它把它作为字符串而不是公式  ie =('[2013年5月8日!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])"

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

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

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

注意使用FormulaR1C1。基本上,您需要用单引号括起工作表名称。