«Невозможно получить свойство Slope класса WorksheetFunction» Ошибка

Таблица

Sub GraphData() Dim GraphStart As Integer Dim GraphEnd As Integer Dim TimeRange As Range Dim AssayRange As Range Dim LastRow As Integer Dim AssayTime As Date Dim k As Integer Dim m As Integer LastRow = ActiveWorkbook.Worksheets("RawData").Range("B15").Value + 17 For k = 18 To LastRow If ActiveWorkbook.Worksheets("RawData").Range("H" & k).Value < 2 Then GraphStart = k + 1 End If Next For m = 18 To LastRow If ActiveWorkbook.Worksheets("RawData").Range("H" & m).Value < 32 Then GraphEnd = m End If Next Set TimeRange = Application.Range(Cells(GraphStart, "F"), Cells(GraphEnd, "F")) Set AssayRange = Application.Range(Cells(GraphStart, "H"), Cells(GraphEnd, "H")) ActiveWorkbook.Worksheets("Assay Result").Range("D31").Value = Application.WorksheetFunction.Slope(AssayRange, TimeRange) ActiveWorkbook.Worksheets("Assay Result").Range("D32").Value = (Application.WorksheetFunction.Correl(AssayRange, TimeRange)) ^ 2 ActiveWorkbook.Worksheets("Assay Result").Range("D33").Value = Round(Application.WorksheetFunction.Min(AssayRange), 2) & " to " & Round(Application.WorksheetFunction.Max(AssayRange), 2) End Sub 

Я считаю, что у кого-то есть эта проблема раньше. Ошибка несогласованна, происходит когда-то.

  1. Диапазон данных для расчета наклона меняется. Поэтому я установил две переменные диапазона данных для серий x и y: TimeRange и AssayRange
  2. Данные TimeRange находятся от столбца F18 до конца столбца F, а диапазон анализа – от столбца H18 до конца H.
  3. Только данные в столбцах H> 2 и <32 будут выбираться в диапазонах и использоваться для расчета.
  4. Данные в столбцах F и H являются десятичными типами данных. Любые идеи о том, где ошибка?

Попробуй это.

 Sub GraphData() Dim GraphStart As Integer Dim GraphEnd As Integer Dim TimeRange As Range Dim AssayRange As Range Dim LastRow As Integer Dim AssayTime As Date Dim k As Integer Dim m As Integer Dim Ws As Worksheet, toWs As Worksheet Dim Wf As WorksheetFunction Set Wf = WorksheetFunction Set Ws = Worksheets("RawData") Set toWs = Worksheets("Assay Result") With Ws LastRow = .Range("B15").Value + 17 For k = 18 To LastRow If .Range("H" & k).Value < 2 Then GraphStart = k + 1 End If Next For m = 18 To LastRow If .Range("H" & m).Value < 32 Then GraphEnd = m End If Next Set TimeRange = .Range("F" & GraphStart, "F" & GraphEnd) Set AssayRange = TimeRange.Offset(, 2) End With With toWs .Range("d31") = Wf.Slope(AssayRange, TimeRange) .Range("d32") = Wf.Correl(AssayRange, TimeRange) ^ 2 .Range("d33") = Round(Wf.Min(AssayRange), 2) & " to " & Round(Wf.Max(AssayRange), 2) End With End Sub 
Interesting Posts

Условное форматирование – Excel

Чтение значений числовых ячеек Excel, так как они находятся в Java

Функция VBA для проверки, если ячейка условно отформатирована в Excel

Источник данных с различными типами данных

Получение итоговой суммы из другого листа на основе текущей даты

Excel – лучший формат файла для макросов и форм

запись данных в excel в java данных первой вкладки не отображается во время записи второй вкладки

Excel VLOOKUP не соответствует значениям, содержащим только числа

Заполните данные в веб-формах и получите имена участников

Формула Excel для преобразования даты времени EST в дату IST?

Как сделать утверждения по содержимому из файла Excel?

Как форматировать динамически сгенерированную ячейку

Импортировать список имен папок в папку с Python

Ссылка на ячейку Excel из закрытой книги с использованием имени файла в ячейке

Как отобразить сумму выбранных ячеек в качестве подсказки? Excel VBA

Давайте будем гением компьютера.