多个自动筛选条件(数组)运行时错误1004

时间:2017-03-28 04:01:11

标签: arrays excel-vba runtime-error vba excel

一般目标:在一张原始数据中应用多个过滤器,然后将各个过滤器的行粘贴到不同的工作表中。

假设原始数据表包含来自列A:J的数据,则列A具有不同的变量,例如: LVROA。 (实际上有大约27个独特的变量,但我对逻辑更感兴趣,这个问题给了我一些问题)。请注意,我还需要过滤以从F列(字段6)中排除第3("<> 03 *")并为该建筑物的信息使用单独的工作表。

到目前为止,我使用相当简单/实用的编码为我做过滤和粘贴,第1行是不同的标题:

Public Sub LVROA ()
   Sheets("Raw Data Amendment").Select
   ActiveSheet.Range("$A$1").Autofilter Field:=1, Criteria1:="LVROA"
   ActiveSheet.Range("$A$1").Autofilter Field:=6, Criteria1:="<>03*"
   Range("A1:J4000").Copy 'J4000 randomly set to ensure it includes all data)
   Sheets("LVROA").Select
   ActiveSheet.paste
 End Sub

Public Sub LVROA_3()
   Sheets("Raw Data Amendment").Select
   ActiveSheet.Range("$A$1").Autofilter Field:=1, Criteria1:="LVROA"
   ActiveSheet.Range("$A$1").Autofilter Field:=6, Criteria1:="03*"
   Range("A1:J4000").Copy
   Sheets("LVROA_3").Select
   ActiveSheet.paste
 End Sub

现在我需要另外通过建筑物7,9和20分开LVROA(&#34; 07 *&#34;,&#34; 09 *&#34;,&#34; 20 *&#34 )。这些都在一张纸上,但这也意味着将它们从最初的LVROA工作表中排除,因此我的过滤器总共需要排除(&#34;&lt;&gt; 03 *&#34;,&#34;&lt; &GT; 07 *&#34;&#34;&LT;&GT; 09 *&#34;&#34;&LT;→20 *&#34)。这是我收到错误的地方。

我尝试了以下但没有成功:

Public Sub LVROA ()
   Sheets("Raw Data Amendment").Select
   ActiveSheet.Range("$A$1").Autofilter Field:=1, Criteria1:="LVROA"
   ActiveSheet.Range("$A$1").Autofilter Field:=6, Criteria1:=Array("<>03*", _
   "<>07*","<>09*","<>20*"), _
   Operator:=xlFilterValues
   Range("A1:J4000").Copy
   Sheets("LVROA").Select
   ActiveSheet.paste
 End Sub

运行时错误&#39; 1004&#39; - 范围类的自动筛选方法失败,突出显示的是操作员行以及要排除的建筑物阵列的行。

我在这个帖子 VBA Autofilter With Multiple Criteria Using Variables 中发现了一个类似的运行时错误,但我已经声明了字段(6),所以我不认为这是问题。这个似乎也没有回答我的问题 Excel VBA AutoFilter on user selection run-time error 1004

一旦我弄清楚如何排除这些建筑物,我应该能够轻松地找出如何仅为其工作表过滤它们。

任何帮助都表示赞赏,理想情况下,我希望通过循环显着缩短所有这些并使其更加精通。但循环它可能仍然会给我同样的问题。

0 个答案:

没有答案