Я бы хотел построить формулу exsiting в операторе IF.
Простого значения недостаточно, поскольку формула, написанная до того, как код VBA пропал.
Итак, я нашел несколько способ, как построить формулу в код:
https://www.excelcampus.com/vba/writing-formulas-with-macros/
, но в порядке, как показано ниже:
If cbleven.Value = True Then
ActiveSheet.Cells(53, 4).Value = ActiveSheet.Cells(53, 4).Value - 1
ActiveSheet.Cells(51, 4).Formula = "=C52" + 2
End If
I получаю ошибку: Несоответствие типов
В этом случае я должен сделать что-то другое. Другое решение можно найти здесь:
Несоответствие типов при установке формулы в ячейку с VBA
, относительно которой я подготовил свой код следующим образом:
Sub CableOddEven()
Dim cblodd As Range
Dim wsca As Worksheet
Dim fm As Formula
Set wsca = ActiveSheet
Set cblodd = wsca.Range("C52")
Set fm = AverageIfs("=C51")
End If
If cbleven.Value = True Then
ActiveSheet.Cells(53, 4).Value = ActiveSheet.Cells(53, 4).Value - 1
ActiveSheet.Cells(51, 4).Value = fm + 2
'ActiveSheet.Cells(51, 4).Formula = "=C52" + 2
End If
End Sub
Теперь отладчик выделяет Dim fm as Formula
, где ошибка говорит: Определяемый пользователем тип не определен .
Можно ли как-нибудь разрешить моей формуле работать с код макроса при условии IF?