用于在单元格区域上使用目标搜索的宏

用于在单元格区域上使用目标搜索的宏

我正在尝试在一系列单元格上自动执行 GoalSeek 函数。I 列和 J 列中的每个单元格使用两种不同的方法计算感兴趣的数量,并且结果必须一致。

K 列中的每个单元格都是 I 列和 J 列中相应单元格之间的差值。F 列中的每个单元格包含参数的值,当 GoalSeek 收敛时,该参数将 K 驱动为零(即 I = J)。这是我使用的代码:

Sub TargetTemp()
    
    Do Until Range("K26:K119") = 0
        
        Range("J26:J119").GoalSeek Goal:=Range("I26:I119"), ChangingCell:=Range("F26:F119")
        
    Loop
    
End Sub

当我运行它时,我收到类型不匹配错误 13,不知道为什么。有人能帮忙吗?

答案1

您应该GoalSeek对单个单元格使用,而不是一次对整个范围使用。您可以通过更改Application.MaxChange与数据相关的属性来控制计算的准确性。默认值是0.001。如下所示:

    Sub TargetTemp()
        Dim i As Long
        Application.MaxChange = 0.0001
        For i = 1 To Range("J26:J119").Count
            Range("J26:J119")(i).GoalSeek Goal:=Range("I26:I119")(i), _
                ChangingCell:=Range("F26:F119")(i)
        Next i
    End Sub

目标寻求

相关内容