excel - 复制具有标准 4、5、8、10、11、12、13 的过滤行
问题描述
我正在尝试将具有标准 4、5、8、10、11、12、13 的行复制到单独的工作表(2019_Rücktrans)中。
Sub Copy()
Dim variable As String
variable = "2019"
With Sheets(variable).UsedRange
.AutoFilter Field:=22, Criteria1:=Array("4", "5", "8", "10", "11", "12", "13")
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("2019_Rücktrans").Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).PasteSpecial x1PasteValues
Sheets(variable).UsedRange.AutoFilter
End Sub
错误信息:
运行时错误 1004 Range 类的 AutoFilter 方法失败
解决方案
我相信以下内容应该可以帮助您实现所需的结果,它与使用带有过滤器的 Operator 语句有关,因此它不是简单地过滤到数组的最后一个值,而是实际过滤数组中的所有值:
Sub Copyit()
Dim variable As String
Dim LastRow As Long
variable = "2019"
LastRow = Sheets("2019_Rücktrans").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
With Sheets(variable).UsedRange
.AutoFilter Field:=22, Criteria1:=Array("4", "5", "8", "10", "11", "12", "13"), Operator:=xlFilterValues
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy Sheets("2019_Rücktrans").Range("A" & LastRow)
End With
Sheets(variable).UsedRange.AutoFilter
End Sub
除了注释之外,验证当前未设置过滤器的一种方法是在代码顶部添加以下内容:
On Error Resume Next
ThisWorkbook.Worksheets("2019_Rücktrans").ShowAllData
On Error GoTo 0
推荐阅读
- typescript - 输入'{数据:数字;}' 不可分配给打字稿中的类型 '(obj: any) => any' 错误
- android - Recyclerview 项目按钮动画发生在多个项目上
- firebase - 在颤动中切换点赞按钮
- android - 适用于 Android 设备的 SQLite 表设计
- linux-kernel - 将 file_operations 转换为 proc_ops 时如何处理 cdev_init?
- spring-boot - 杰克逊使用 HATEOAS 时 ZonedDateTime 的反序列化问题
- git - VSCode Flutter - 停止跟踪 Flutter repo 更改
- python - 瓶服务器:删除路线
- discord - 在不和谐中扮演角色
- javascript - React - 道具收到新数据后渲染页面