#excel #vba #excel-formula
#excel #vba #excel-формула
Вопрос:
У меня есть кнопка на одном листе (назовем ее worksheet1), и я хочу запустить макрос на другом листе, если он нажат. Мой код выглядит так:
Sub Makro1()
Dim try As String
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet
Set ws = wb.Sheets("Worksheet2")
'
' Makro1 Makro
'
'
ActiveCell.FormulaR1C1 = _
"=SUM(R[-50]C[8]:(INDIRECT(""K"" amp; (MATCH(TODAY(),R[-50]C[7]:R[94]C[7],0) 6))))"
ws.Range("INDIRECT(""C"" amp; (MATCH(TODAY(),R[-50]C[7]:R[94]C[7],0) 6))").Select
End Sub
Поскольку я никогда раньше не работал с Excel, я не знаю, что не так…
Цель состоит в том, чтобы добавить формулу в ячейку (C__), номер индекса которой совпадает с сегодняшней датой (сравнение в ячейках от J7 до J151).
Комментарии:
1.1.
ActiveCell.FormulaR1C1
Это поместит формулу в activesheet. Возможно, что-то вродеws.Range("A1").FormulaR1C1...
измененияA1
соответствующей ячейки назначения. 2.ws.Range("INDIRECT(""C"" amp; (MATCH(TODAY(),R[-50]C[7]:R[94]C[7],0) 6))").Select
При использовании необходимо указать правильное имя диапазонаRange()
2. Спасибо, первая часть помогает, но для второй части, что я могу использовать вместо Range()? Поскольку мне нужен этот макрос, добавляйте формулу в новую ячейку каждый день