-3

Его для назначения. Есть данные, данные за январь-июнь, а данные за июль пусты. После того, как я ввожу данные за июль, создается среднее

Задача состоит в том, чтобы исправить программу, чтобы после того, как я поместил данные в июле, была создана отдельная строка августа, а когда я поместил данные в августовское среднее значение, была создана строка сентября.

Я не прошу какой-либо код. Просто покажи мне в правильном направлении, откуда я могу начать.

1 ответ1

1

Этот код выполняет задачу:

Private Sub Worksheet_Change(ByVal Target As Range) ' It is executed each time there is a change on the sheet
    Application.EnableEvents = False 'Disable detection of further events
    Dim wks As Worksheet
    Set wks = ActiveSheet 'Assign a variable name to the active sheet
    Dim months(1 To 12) As String ' Creates an array of 12 elements to store month names
    months(1) = "january"
    months(2) = "february"
    months(3) = "march"
    months(4) = "april"
    months(5) = "may"
    months(6) = "june"
    months(7) = "july"
    months(8) = "august"
    months(9) = "september"
    months(10) = "october"
    months(11) = "november"
    months(12) = "december"
    totalrows = wks.Cells(Rows.Count, 2).End(xlUp).Row 'Row of the last value entered
    If totalrows <= 12 Then 'If it is inside the defined range of months
        wks.Cells(totalrows + 1, 1) = months(totalrows) 'Put the next month name
        For j = totalrows + 2 To 13 'Cleans the rows below this
            wks.Cells(j, 1) = ""
        Next j
    End If
    dataAverage = 0 'calculate the average
    For i = 2 To totalrows
        dataAverage = dataAverage + wks.Cells(i, 2)
    Next i
    dataAverage = dataAverage / (totalrows - 1)
    wks.Cells(2, 5) = dataAverage 'Put the average in the designated cell
    Application.EnableEvents = True 'Enable the detection of events

ErrorHandler:
    Application.EnableEvents = True 'Whenever the Sub generates an error executes this line
End Sub

Он работает с листом так:

Вы можете настроить код, чтобы адаптировать его к другой позиции строк / столбцов.

Откройте VBA / Macros с помощью Alt+ F11, дважды щелкните по листу, который вы хотите использовать, и вставьте код с правой стороны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .