【发布时间】:2014-11-04 00:23:00
【问题描述】:
VBA 新手,这是我第一次发布问题。我有一个包含大约 50k 条记录的工作簿。数据包括大约。 2700 只美国股票,每两周更新一次数据,以查看价格、交易量等。我将每两周更新一次数据,当我这样做时,我将消除不符合某些标准的证券。每次更新时,可能有 30 到 50 只证券需要删除,因此为每个证券过滤并删除该证券的所有行非常耗时。
我希望能够在名为“过滤器”的工作表上维护一个表格,每次我需要删除某些证券时,我可以手动填充我的“删除”,然后运行一个宏来过滤到这些证券并删除所有行。
到目前为止,这是我尝试将数据过滤到所需行的方法。我似乎无法让它工作。我在下面的粗体行中收到错误。
我有一个名为“Filtering”的表,名为“Filters”表(第五张表),原始数据位于名为“Data”的表中(第一张表)。任何帮助是极大的赞赏。
Sub deleterows()
Dim Filtering As Variant
Dim ws1 As Worksheet, ws2 As Worksheet
Dim sedol As Range, rngData As Range
Set ws1 = Worksheets("Data")
Set ws2 = Worksheets("Filters")
Set rngData = ws1.Range("$D$1").CurrentRegion
**Set sedol = ws2.Range("Filtering")**
Filtering = sedol.Value
rngData.AutoFilter Field:=1, _
Criteria1:=Application.Transpose(Filtering), _
Operator:=xlFilterValues
【问题讨论】:
-
你的桌子是怎么命名的?你是用 this method 做的吗?
-
这类使用自动过滤器完成删除的问题已经被讨论过很多次了。您没有在SO中进行搜索吗? :)
-
这就是问题所在,我认为我的表命名不正确。我是通过名称管理器通过公式完成的。我回去创建了一个表格,并按照@jeeped 的建议添加了标题名称,效果很好。我也在 SO 中搜索了这个,这就是我能够创建我发布的基本代码的方式。我只是不明白为什么我一直收到 1004 错误,所以我发布了这个问题。非常感谢您的帮助。
标签: vba excel rowdeleting