2013-05-13 2 views
0

У меня есть макрос vba, который копирует текущий лист и переименовывает его с текущей датой, которая отлично работает, теперь я хочу, чтобы она поместила формулу в ячейку B22, формулу, которая Я хочу это:Вставка формулы, содержащей переменную, в ячейку с использованием макроса

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

Я пытался получить этот код, чтобы работать, но это ставит его в виде строки, а не формула т = ('- [12 мая [8 мая 2013 R2C18!] 2013! 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])" 

Любая помощь будет оценена

ответ

2

Ваша формула неправильная. Сначала попробуйте в Excel, затем скопируйте текст формулы и сравните с текстом, который производит ваша последняя строка кода выше. Изменение кода VBA для этого:

ActiveCell.FormulaR1C1 = "=" & название_листа & " 'R18C2-!'" & activeSheet_name & " 'R18C2" !

Обратите внимание на использование FormulaR1C1. В основном вам нужно окружать имена листов одиночными кавычками.

+0

Спасибо за быстрый ответ, но это не сработало. Я не уверен, что вы понимаете, что я пытаюсь сделать, каждый лист как дата, когда имя листа хранится в переменных sheet_name и activeSheet_name Мне нужна формула для вычтите значение в ячейке B18 на листе 08 мая 2013 года из ячейки B18 на листе 12 мая 2013 года и положите ответ в ячейку B22 на листе 12 мая 2013 года Надейтесь, что это немного яснее – user2378040

+0

Хорошо, я изменил ответ выше. Вы можете точно определить, какой должна быть строка, выполнив ее сначала в Excel, скопировав строку и вставив ее в VBA, а затем заменив ссылки на листы на переменные имени листа. – steveo40

+0

Спасибо steveo40, который работал с удовольствием, я застрял на этом целую вечность. Большое спасибо – user2378040

Смежные вопросы