VBA - Использование функции усреднения в Sheets.Range - PullRequest
0 голосов
/ 28 марта 2019

Я пытался найти несколько разных тем, но не смог найти решение.

Мой макрос собирается передавать данные с одного листа на другой.Мне нужно использовать функцию AVERAGE, чтобы получить среднее значение диапазона (на другом листе)

Я получаю ошибку RUN TIME ERROR 438 и не могу понять, почему.Я попытался использовать Application.WorksheetFunction, но это не дает правильного результата и работает с функцией MAX, но не с AVERAGE.Я видел несколько решений, которые включают создание цикла и переменных, но я предполагал, что простое решение должно быть возможным.

Код ниже:

Option Explicit            

Sub Step8CopytoLean()
    Dim wblean As Workbook
    Dim wbmaster As Workbook

    Set wblean = Workbooks("SLA Reporting Lean.xlsx")
    Set wbmaster = Workbooks("SLA Reporting MasterFile.xlsx")

    Workbooks("Lean.xlsx").Activate
    Worksheets("Data").Delete

    Workbooks("MasterFile.xlsx").Activate
    Worksheets("Data").Copy After:=Workbooks("Lean.xlsx").Sheets("Summary")

    Workbooks("Lean.xlsx").Sheets("Summary").Activate

    wblean.Sheets("Summary").Range("E4").Value = wbmaster.Sheets("Summary").Range("K20") 
    wblean.Sheets("Summary").Range("F4").Value = wbmaster.Sheets("Summary").Range("M20") 
    wblean.Sheets("Summary").Range("E5:E6").Value = wbmaster.Sheets("Summary").Average(Range("K9:K11")) 'line with error
    wblean.Sheets("Summary").Range("F5").Value = wbmaster.Sheets("Summary").Max(Range("M8:M11"))  'line with error

1 Ответ

2 голосов
/ 28 марта 2019

Измените ниже и попробуйте:

Application.WorksheetFunction.Average(ThisWorkbook.Worksheets("Sheet1").Range("A1:A10"))

Примерно так:

wblean.Sheets("Summary").Range("E5:E6").Value = Application.WorksheetFunction.Average(wbmaster.Worksheets("Summary").Range("K9:K11"))
wblean.Sheets("Summary").Range("F5").Value = Application.WorksheetFunction.Max(wbmaster.Worksheets("Summary").Range("M8:M11"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...