Выполнить формулу Excel, хранящуюся в строке из макроса - PullRequest
0 голосов
/ 21 ноября 2018

Требование:
Рассчитать количество понедельников, которые являются выходными днями между диапазонами дат, и выполнить их с помощью макроса.Я мог бы получить формулу, которая может дать мне правильный результат

 =SumProduct((VIC >= DATEVALUE("1/01/2016")) * (VIC <= DATEVALUE("19/01''/2018")) * (Weekday(VIC, 2) = 1))

Не могли бы вы помочь мне выполнить формулу, хранящуюся в строке?

Sub TestFunction()
    Dim LeaveStartDate, LeaveEndDate As Date

    Set srcdoc = Worksheets("Sheet1")
    Dim CntSunPH  As String

    LeaveStartDate = Worksheets("Sheet1").Cells(1, "B").Value
    LeaveEndDate = Worksheets("Sheet1").Cells(2, "B").Value

    State = "VIC"
    CntSunPH = Replace((Replace(Replace(("=SumProduct((State >= DATEVALUE(""LeaveStartDate"")) * (State <= DATEVALUE(""LeaveEndDate"")) * (Weekday(State, 2) = 1))"), "State", State), "LeaveStartDate", LeaveStartDate)), "LeaveEndDate", LeaveEndDate)
    n = 0
    n = Application.WorksheetFunction.Execute("=SumProduct((VIC >= DATEVALUE(""1/01/2016"")) * (VIC <= DATEVALUE(""19/01/2018"")) * (Weekday(VIC, 2) = 1))")

    Debug.Print "Date1 " & LeaveStartDate
    Debug.Print "Date2  " & LeaveEndDate
    Debug.Print CntSunPH

    Debug.Print n    
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...