Диапазон умножения на процент оставшихся дней в текущем месяце - PullRequest
0 голосов
/ 05 октября 2018

У меня проблемы с самой последней частью этого кода, которую я писал.

Я пытаюсь, чтобы Excel вычислил процент оставшихся дней в текущем месяце на основе сегодняшнего дня.Затем он умножает диапазон ячеек на это значение.

Когда он фактически умножается, все ячейки изменяются на "#NAME".Я проверил с помощью msgbox и расчетная часть идет правильно (он находит правильный процент), но когда он подключен к последней формуле для умножения, он не работает.

Когда я вынимаю переменную из формулы и вставляю фактическое число, она отлично работает.Я предполагаю, что что-то не так с тем, как я записываю переменную в финальную последовательность.Что я делаю не так с моим форматированием?

Sub MultiplyDayRatio()

Dim rngData As Range
Dim MyDate As Date
Dim DaysLeft As Integer
Dim DaysInMonth As Integer
Dim PercentLeft As Double


MyDate = Date

'DaysInMonth = EoMonth(Today(), 0)

DaysLeft = WorksheetFunction.EoMonth(Date, 0) - Date

'MsgBox DaysLeft

DaysInMonth = (MonthDays(Month(MyDate)))

'MsgBox DaysInMonth

PercentLeft = DaysLeft / DaysInMonth

'MsgBox PercentLeft

Set rngData = ThisWorkbook.Worksheets("Ingredient_Forecast_Summary").Range("G3:G70")
rngData = Evaluate(rngData.Address & "*PercentLeft.value")


End Sub

1 Ответ

0 голосов
/ 05 октября 2018

LPerry.Попробуйте это:

Sub MultiplyDayRatio()

    Dim rngData As Range, C As Range '<-- new variable
    Dim MyDate As Date
    Dim DaysLeft As Integer
    Dim DaysInMonth As Integer
    Dim PercentLeft As Double


    MyDate = Date

    'DaysInMonth = EoMonth(Today(), 0)

    DaysLeft = WorksheetFunction.EoMonth(Date, 0) - Date

    'MsgBox DaysLeft

    DaysInMonth = (MonthDays(Month(MyDate)))

    'MsgBox DaysInMonth

    PercentLeft = DaysLeft / DaysInMonth

    'MsgBox PercentLeft

    Set rngData = ThisWorkbook.Worksheets("Ingredient_Forecast_Summary").Range("G3:G70")
    'rngData = Evaluate(rngData.Address & "*PercentLeft.value") 'instead this

    'Try this
    For Each C In rngData
        C = C * PercentLeft
    Next C

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