excel - 自动筛选代码的参数不是可选错误
问题描述
我对VBA不是很精通。我正在尝试创建一个宏,将活动工作表的表格过滤为 0 和“N/A”。运行宏时,我收到错误“Argument Not Optional”并返回到 ws.Range 行。
我查看了其他代码,但我不确定我到底做错了什么。
Sub Remove_Cleared()
'
' Remove_Rows_Based_On_Value
'
'
Dim ws As Worksheet
Dim activeTable As String
activeTable = ActiveSheet.ListObjects(1).Name
MsgBox activeTable 'Make sure pulling correct table
'Set reference to the sheet in the workbook
Set ws = ActiveSheet
ws.Activate 'not required but allows user to view sheet if warning message
'clear any existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'1 Apply Filter
ws.Range.AutoFilter Field:=8, Criteria1:="0", Operator:=xlOr, Criteria2:="N/A"
'2 Delete Rows
Application.DisplayAlerts = False
ws.Range(activeTable).SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'3 Clear Filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
在宏结束时,我希望从活动工作表的表中删除任何包含 0 或 N/A 值的行。
解决方案
ws.Range("A1:M300")
...Range
对象需要一个范围。
由于您已经获得了该表的名称,因此可以将其用作参数:
ws.Range(activeTable).AutoFilter Field:=8, Criteria1:="0", Operator:=xlOr, Criteria2:="N/A"
推荐阅读
- python - 如何在所有交互中使用条件进行循环?
- python - 使用人工智能预测序列中的下一个数字 (n+1)
- scikit-learn - SkLearn 中的 TimeSeriesSplit 无法正常工作
- haskell - 获取 Stack 以通过测试套件名称作为 --test-arguments 的一部分
- php - Laravel 仅存储 DB 表中数组的最后一个元素(foreach 循环)
- entity-framework - 在实体框架中获取实体及其相关数据时的主键与外键
- javascript - 如何在 django 中将模型数据传递给 Javascript?
- python - 如何读取 json 响应的不同键值对?
- laravel - 作曲家更新后应用作曲家不存在
- typescript - 判别联合上的条件类型