0

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

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

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

任何帮助,将不胜感激

4

1 回答 1

2

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

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

注意使用公式R1C1。基本上,您需要用单引号将工作表名称括起来。

于 2013-05-13T14:27:35.123 回答