1

晚上好,

在过去的几个月里,我一直在学习如何使用 VBA 来自动化一些报告。这个网站提供了很大的帮助,我已经能够弄清楚如何做很多事情,但这个问题的解决方案仍然让我望而却步。我有一个相对复杂的宏,它已经完全自动化了这个特定的报告,除了这一步,如果我能解决这个问题,我可以实现报告的完全自动化。

系统会生成一个 .xls 格式的原始数据文件,其中包含必须清理并添加到报告模板中的月份的新数据。X 列包含商品描述,但是许多数据行包含不可接受的商品描述,需要将这些行复制到单独的工作表中并发送给其他人以找到正确的描述。在主报告模板中,我创建了一个可接受的商品描述列表,我希望能够对原始数据文件进行过滤,以便在 X 列中具有不在可接受列表中的值的任何行显示和所有已包含可接受描述的行将被隐藏。

我尝试过操作过滤器、录制宏并尝试操作代码但没有运气。这是我记录动作时得到的。数组开头的一些项目是可接受描述的示例(有意义的东西),最后的随机内容是我想要显示的项目类型的示例,这些需要研究和手动更正。

Sub hiderows()
    Windows("stop level data.xls").Activate
    Rows("1:1").Select
    Selection.AutoFilter

    ActiveSheet.Range("$A$1:$AB$1290").AutoFilter Field:=24, Criteria1:=Array( _
    "Cotton", "Covers", "Displays", "Fabric", "Fasteners", "Fiber", "Fiber Rolls", _
    "Fibers", "Foam", "Foam Rolls", "Frames", "Labels", "Latex", "Lumber", "Machines",_
    "Mattresses", "Pads", "Plastic", "PO #Avi", "PO #P0005557/SO #3203687", _
    "PO #P0005615/SO #3203693", "PO #P0007297/SO#3203828", "Rolls", "Serta", "Springs"_
    , "T000216", "T000247", "T000269", "T000270", "T000278", "T000286", "T000294", _
    "T000296", "Tape", "Thread", "Tick", "Ticking", "Transfer from", "Wood", _
    "="), Operator:=xlFilterValues
End Sub

作为第一步,我试图让上面的代码隐藏行而不是通过插入 <> 而不是 = 以多种不同的方式显示它们,但没有运气。我真正想做的是过滤工作表Windows("Stop level data.xls"),以便如果column X特定行的值不等于Windows("master template.xlsm").Sheets("lookups").Range("AE2:AE100")

提前感谢您的时间,我已经花了无数个小时来解决这个问题,并且真的离解决方案更近了。

4

0 回答 0