当我运行我的 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