VBA查找什么错误

时间:2018-07-25 07:21:14

标签: excel vba excel-vba excel-formula

以下代码提供了Find What:调试。尝试查看一系列数值(从ea单元格中的公式找到,在ea单元格中相同),如果不存在正好为0的值,则查找并选择负值最小的单元格。然后通过目标搜索将该单元格设置为0。

Sub Test()
Dim Cel As Range

    For Each Cel In ThisWorkbook.Sheets("Sheet1").Range("V17:V57")
        If Cel.Value <> 0 Then
    Cel.Find What:=Application.WorksheetFunction.FormulaArray("MAX(IF(V17:V57<=0,V17:V57),MIN(V17:V57))"), After:=Cells(57, 22), LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False

    Cel.GoalSeek Goal:=0, ChangingCell:=Cel.Offset(0, -4)
        End If
    Next Cel
End Sub

我修改了Find What行,没有更多的调试错误,但是如何进一步修改它以实际select找到的最小负数单元格呢?

Cel.Find What:=Evaluate("=MAX(IF(V17:V57<=0,V17:V57),MIN(V17:V57))"), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False

Cel.Select工作之后使用Find What:

现在,我的Find What不管值是多少,都在查找范围内的最后一个单元格。它应该找到最少的负面因素。任何反馈表示赞赏。这就是现在的代码

 For Each Cel In ThisWorkbook.Sheets("Sheet1").Range("V17:V57")
    If Cel.Value <> 0 Then
    Cel.Find What:=ActiveSheet.Evaluate("=LARGE(V17:V57,COUNTIF(V17:V57,"">0"")+1)")
    Cel.Select
    End If
Next Cel

1 个答案:

答案 0 :(得分:0)

数组工作表函数的结果可能是一个值数组,这不是.Find命令的有效参数。确保您要传递给.Find方法的参数有效。

没有看到您的数据,很难给出更详细的建议。