运行时错误 1004 - 范围类的自动筛选方法失败



当我运行我的 vba 时,我得到

运行时错误'1004;范围类的自动筛选方法失败

我尝试将工作表更改为工作表 1,因为它在以前的答案中推荐,但它不起作用

Sub Split_Data_in_workbooks()
Application.ScreenUpdating = False
Dim data_sh As Worksheet
Set data_sh = ThisWorkbook.Sheets("Working File")
Dim setting_Sh As Worksheet
Set setting_Sh = ThisWorkbook.Sheets("Setting")
Dim nwb As Workbook
Dim nsh As Worksheet
''''''Get unique districts

setting_Sh.Range("A:A").Clear
data_sh.AutoFilterMode = False
data_sh.Range("b:b").Copy setting_Sh.Range("A1")
setting_Sh.Range("A:A").RemoveDuplicates 1, xlYes
Dim I As Integer
For I = 2 To Application.CountA(setting_Sh.Range("A:A"))
   data_sh.UsedRange.AutoFilter 2, setting_Sh.Range("A" & I).Value
   Set nwb = Workbooks.Add
   Set nsh = nwb.Sheets(1)
   data_sh.UsedRange.SpecialCells(xlCellTypeVisible).Copy nsh.Range("A1")
   nwb.SaveAs setting_Sh.Range("H6").Value & "/" & setting_Sh.Range("A" & 
I).Value & ".xlsx"
   nwb.Close False
   data_sh.AutoFilterMode = False
Next I
setting_Sh.Range("A:A").Clear
MsgBox "Done"
End Sub

该代码应该从一个工作簿中获取每个地区的信息(可以是多行(,并将其保存到单独的工作簿中并保存在指定的文件中。 代码不会通过此行运行

data_sh.UsedRange.AutoFilter 2, setting_Sh.Range("A" & I).Value
您可能

将不正确的参数传递给data_sh.UsedRange.AutoFilter方法。第一个参数不得大于字段数 - 尝试 1 而不是 2。文档中第二个参数的说明:

条件(字符串;例如"101"(。使用"="查找空白 字段,"<>"用于查找非空白字段,"><"用于选择(无数据( 数据类型中的字段。如果省略此参数,则条件为 都。如果运算符为 xlTop10Items,则 Criteria1 指定 项(例如,"10"(。

尝试这一行,然后使用不同参数的值。确保您知道要传递给函数的参数值:

data_sh.UsedRange.AutoFilter 1

最新更新