我有一个复制当前工作表的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])"
任何帮助将不胜感激
答案 0 :(得分:2)
你的公式错了。首先在Excel中尝试,然后复制公式的文本,并与上面最后一行代码生成的文本进行比较。将您的VBA代码更改为:
ActiveCell.FormulaR1C1 =“='”& sheet_name& “'!R18C2-'”& activeSheet_name& “'!R18C2"
注意使用FormulaR1C1。基本上,您需要用单引号括起工作表名称。