运行宏时出现错误代码:
运行时错误450:参数数量错误或属性分配无效
基本上,我只需要过滤3个文本XBKK
,XBKF
和XMAI
,而下面的代码则无法过滤。
Dim OrigLines, LiveData As Long
Dim FirstRow As Integer
OrigLines = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
FirstRow = 1
Sheets("Paste_SDR").Select
Range("$A$1:$FB" & OrigLines).Copy
Sheets("SDR - working").Select
Range("A1").Select
Selection.PasteSpecial
Rows("1:1").Select
Application.CutCopyMode = False
Selection.AutoFilter
ActiveSheet.Range("$A$1:$FB" & OrigLines).AutoFilter Field:=126, Criteria1:= _
"<>*XBKK*", Operator:=xlAnd, Criteria2:="<>*XMAI*", Operator:=xlAnd, Criteria2:="<>*XBKF*"
If Range("A" & Rows.Count).End(xlUp).Row > FirstRow Then
Range("$A$2:$FB" & OrigLines).SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
End If
答案 0 :(得分:1)
抛出该错误是因为您不能多次传递相同的参数。无论如何,以您尝试的方式向自动过滤器传递两个以上的条件是不可能的。
如果您有要用作过滤器的值列表,请将它们作为数组传递:
ActiveSheet.Range("$A$1:$FB" & OrigLines).AutoFilter Field:=126, _
Criteria1:=Array("XBKK", "XBKF", "XMAI"), Operator:=xlFilterValues
更新
OP希望删除不符合这三个值的所有行。由于没有命令SpecialCells(xlCellTypeInvisible)
,我看到以下可能性
=OR($DV$2="XBKK", DV$2="XBKF", DV$2="XMAI")
之类的内容并将您的过滤器设置为此帮助列答案 1 :(得分:0)
我正在提供代码以删除不需要的行。我不使用$(document).ready(function() {
$('.dropdownlabostaffs:first').on('change', function() {
if(this.value != '') {
var isReadOnly = $('.dropdownlabostaffs, .statusorder');
var domElements = $('.dropdownlabostaffs, .statusorder');
$(domElements).not(":first").prop('readonly', isReadOnly);
$(domElements).not(":first").toggleClass('.dropdownlabostaffs', isReadOnly);
$(domElements).not(":first").find('option').prop('hidden', isReadOnly);
var labostaffs_new = $('.dropdownlabostaffs').val();
console.log('new_labostaffs :'+labostaffs_new);
$('.dropdownlabostaffs').not(':first').val(labostaffs_new);
$('.statusorder').prop('selectedIndex',3);
}
else if(this.value == '') {
$('.statusorder').prop('selectedIndex',2);
}
})
})
方法,但是它会快速,准确且易于阅读。
简而言之,此代码检查每个单元格是否符合指定条件。如果发现与指定条件不匹配的值,则将其放在范围对象中。检查完所有单元格后,将将放置在范围对象中的那些单元格的行删除。
AutoFilter