【发布时间】:2018-07-11 16:46:23
【问题描述】:
我试图在过滤指示项目是否仅限供应商(是/否)的列后删除行。
我想删除该列下的值指示“是”的所有行。但是,当我选择要删除的可见行时遇到错误。
我以前在其他宏中使用过相同的代码,但这次它不起作用。
Dim VisibleCell As Long 'Variable to count the number of visible cells after filtering
VisibleCell = Application.WorksheetFunction.Subtotal(3, Range("A3:A50000"))
Range("Table1").Select
'Filter and remove all Vendor Only items
Rows("2:2").Select 'Find column for Vendor Only and filter for Yes values
Cells.Find(What:="Vendor Item?", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
MyCol = ActiveCell.Column
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=MyCol, Criteria1:= _
"Yes", Operator:=xlAnd
VisibleCell = Application.WorksheetFunction.Subtotal(3, Range("A3:A50000"))
If VisibleCell > 0 Then
Range("A3:A2000").SpecialCells(xlCellTypeVisible).Select
Selection.EntireRow.Delete 'Error occurs here
End If
【问题讨论】:
-
欢迎来到 Stack Overflow! 请务必查看tour(它也为您赢得了徽章!)...我认为您过于复杂了任务您知道如何使用自动筛选手动执行此操作吗?如果是这样,记录你自己做任何你想做的动作的宏,你的代码将为你编写 90%。
-
嗨,我最初就是这样做的。我录制了宏并对其进行了调整以供自己使用。它适用于我以前的文件,但由于某种原因不适用于这个文件..