' .Find'方法根本不会返回任何东西

时间:2015-11-10 18:09:42

标签: excel vba excel-vba

基本上我的代码只是找到一个包含由表单中的旋转按钮提供的索引坐标的单元格。它只是整个代码的一部分,在我今天早上重新打开代码继续编码之前,整个代码工作得非常完美且速度很快。在我保存最后一次后,我完全没有改变,通过一些调试,我发现.Find方法由于某种原因没有返回任何内容,尽管数据存在,即使我用整个列填充整个列它应该找到相同的数据,它不会返回任何东西。因此代码产生:

  

"对象变量或With block变量未设置"

每次尝试使用该对象时。

Set DR = Worksheets("Detalle - Reporte")

If spinCapituloVal.Value = 0 Then
    MsgBox ("Por favor, introduce un capítulo válido")
    Exit Sub
End If

With Columns(2)
Set Finder = .Find(spinCapituloVal.Value, LookIn:=xlValues, MatchCase:=False)
End With

If Finder Is Nothing Then
MsgBox ("No se encontró el capítulo especificado")
Exit Sub
End If

indiceCapActual = Finder.Value
indiceCapSiguiente = Finder.Offset(1, 0).Value

If indiceCapSiguiente = "" Then

    With DR.Columns(1)
        Set capActual = .Find(indiceCapActual, LookIn:=xlValues, MatchCase:=True)
        Set capActualGuia = capActual.End(xlDown)
    End With

Else

    With DR.Columns(1)
        Set capActual = .Find(indiceCapActual, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
        Set capSiguiente = .Find(indiceCapSiguiente, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    End With

End If

我想知道的是为什么在这个世界上.Find方法刚停止工作,我将来如何避免它呢?

1 个答案:

答案 0 :(得分:0)

我的问题的解决方案非常出乎意料。我使用.Find方法而capActual方法的列没有足够的宽度以便正确显示其内容,这不知道如何阻止.Find找到包含的单元格价值。是。列宽。

为列提供足够的空间来显示内容解决了问题。