Я пытаюсь использовать выбранный диапазон (который является условным на основе пользовательского ввода), который сохраняется как переменная в формуле ячейки, сгенерированной VBA.
При использовании значения myCells.Address в сообщенииЯ вижу, что переменная правильно хранит выбранный диапазон.однако, когда я пытаюсь вставить это в формулу ячейки, созданную с помощью кода VBA, я либо получаю ошибку несоответствия типов (при сохранении в виде диапазона), либо ошибку требуемого объекта при сохранении в виде строки.
У меня естьпопытался преобразовать сохраненный диапазон в переменной myCells либо в строку, либо в диапазон, который будет использоваться в .formula, но ни один из них не представляется приемлемым,
Sub Calculate_Average()
Dim ws As Worksheet
Dim sSheet As String
Dim Year As Range
Dim myCells As Range
Dim Repairer As Range
Dim range2 As Range
Set ws = ActiveWorkbook.Sheets("Sheet1")
Set Year = ws.Range("$c$5:$s$5")
Set Repairer = ws.Range("$b$8:$b$52")
sSheet = InputBox( _
Prompt:="Enter current month in format mmm-yy", _
Title:="Input Month")
If sSheet = "May-19" Then GoTo loopexit ''debug
If sSheet = "Jun-19" Then GoTo loopexit ''debug
'' loop through cells in Year range to find matching date
For Each Cell In Year
Cell.Select ''debug
If ActiveCell.Value = sSheet Then
ActiveCell.Offset(1, -2).Select
Selection.Resize(Selection.Rows.Count, Selection.Columns.Count + 2).Select
Set myCells = Selection
MsgBox (myCells.Address)
ws.Range("B6").Formula = "=AVERAGE(" & myCells.Address & ")"
ActiveCell.Copy
Repairer.Select
PasteSpecial xlPasteFormulas
GoTo loopexit
Else
MsgBox ("error") ''debug
End If
Next Cell
loopexit: ''debug
End Sub
Формула вводится в ячейку b6 и должна выглядеть как = средняя($ c6: $ E6), а затем скопировать его в диапазон b $ 8: $ b $ 53 с корректировкой, чтобы отразить изменение в строке.