excel - 在宏

excel - 在宏,第1张

我正在录制一个宏来自动化一些Excel报告,每当我尝试运行iserror(搜索)公式时遇到以下错误:

  

运行时错误' 1004':应用程序定义或对象定义的错误

我有两个清单。公式迭代第一个列表,并将值与第二个列表的值进行比较,隐藏任何匹配的值。

Excel中的公式只有更广泛的标准范围:

=AND(ISERROR(SEARCH($B12,B2)),ISERROR(SEARCH($B13,B2)))

当我将公式直接插入电子表格单元格时,它可以正常工作但是当我记录并稍后使用相同的公式运行宏时出现错误。

编辑2

我得到了公式插入来处理宏,但现在我无法像以前一样过滤数据,即使我在没有宏的情况下手动执行也是如此。

下面是一张图片的链接,给出了我试图实现的查找类型的示例,之前它完美地工作并删除了包含来自'删除列表的所有行#&# 39;现在我根本无法过滤它。我已经尝试在保存在记事本中后删除宏,以防文件损坏,但仍然没有像以前那样过滤。可能导致这种情况的原因是什么?

This is how the lookup works

在此示例中,单元格[A13]将包含上述的ISERROR公式。

最佳答案:

3 个答案:

答案 0 :(得分:1)

此公式不能很好地转换为当前形式的VBA。您应该使用VBA Instr函数而不是工作表函数搜索。

Function FindSubstring() As Boolean

    Dim rngFindText As Range
    Dim rngWithinText As Range

    Set rngFindText = Sheet1.Range("B3212")
    Set rngWithinText = Sheet1.Range("B2")

    FindSubstring = InStr(rngWithinText, rngFindText)

End Function

Sub foobar()

    Debug.Print FindSubstring

End Sub

答案 1 :(得分:0)

您正在向Excel询问一个问题,告诉您在B2中找到$​​ B $ 3212的内容并再次查找。

通常,SEARCH用于查找另一件事物的内容,再次使用它再次询问它的AND语句......以及用于什么?

因此这个问题没有意义。

我认为你可能只问一次,如果有错误意味着它在这个例子中没有找到它返回0。 = IF(ISERROR(SEARCH($ B $ 3212 B2)),0,SEARCH($ B $ 3212 B2))

答案 2 :(得分:0)

我认为这一个,原来的1004错误是由vba引起的,只是部分记录了公式,解决方案只需要进入调试器找到哪条线路没有被正确翻译并编辑该线路。然后,我必须编辑公式,以便能够根据我的标准过滤出值,最后得到一个更接近这个的公式:

       =AND(ISERROR(SEARCH("Value1",B2)), ISERROR(SEARCH("Value2",B2)))
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复