首页 > 解决方案 > sloop的循环函数但遇到错误

问题描述

我正在研究一个计算斜率的循环函数。对于数据循环,代码有效,但对于文件循环,它说

错误 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

标签: excelvba

解决方案


您将需要检查循环的每次迭代,因为您在某处将无效值(或多个值)输入到您的方程式中。当您的范围变量包含以下任何一项时,这将出错。请注意,任一范围内只有一个实例会产生错误 1004

  1. 空单元格
  2. 非数字单元格

debug.print您可以在循环时使用file&data来查找最后一个成功的范围,也可以单步执行您的代码。您的目标是找出失败的范围,然后检查该范围内的每个单元格。您可能会发现导致宏失败的空白单元格或文本单元格。

——

如果您有时希望出现无效的单元格值并且希望代码继续运行,则应在此处添加一些错误处理


推荐阅读