функция зацикливания для sl oop, но возникает ошибка - PullRequest
0 голосов
/ 05 марта 2020

Я работал над функцией зацикливания, которая вычисляет наклон. Для данных l oop код работает, но для файла l oop он говорит:

ошибка 1004: «ошибка приложения или объекта»

Я не мог понять, почему так, и мне нужна была помощь.

Sub B3_Sensitivity2()

Dim Xcol As Integer, Ycol As Integer
Dim n As Integer, m As Integer
m = 0

For file = 1 To 2
n = 0

    For data = 1 To 12

    Dim Yrng As Range, Xrng As Range, Grad As Range
    Set Yrng = Sheets("data").Range("F2:F8").Offset(n, m)
    Set Xrng = Sheets("data").Range("E2:E8").Offset(n, m)
    Set Grad = Sheets("data").Range("G2").Offset(n, m)

    Grad.Value = Application.WorksheetFunction.Slope(Yrng, Xrng) [**error 1004 occur here**]

    n = n + 7

    Next data

m = m + 10

Next file

End Sub

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Вам нужно будет проверять каждую итерацию вашего l oop, поскольку у вас есть недопустимое значение (или значения) , которое где-то вводится в ваше уравнение. Это приведет к ошибке, когда ваши переменные диапазона включают одну из следующих. Обратите внимание, что только один экземпляр в любом диапазоне приведет к ошибке 1004

  1. Пустые ячейки
  2. Номера для чисел c ячейки

Вы можете либо debug.print ваш file & data, поскольку вы l oop, чтобы найти последний успешный диапазон, либо пошаговое выполнение вашего кода. Ваша цель - выяснить, в каком диапазоне происходит сбой, а затем осмотреть каждую ячейку в этом диапазоне. Скорее всего, вы найдете пустую ячейку или текстовую ячейку, которая вызывает сбой вашего макроса.

—-

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

0 голосов
/ 05 марта 2020

Попробуйте напечатать Yrng и Xrng перед Grad.Value = Application.WorksheetFunction.Slope (Yrng, Xrng), так как они должны быть номерами массивов одинаковой длины.

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