Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按Excel上的值数组筛选_Excel_Sorting - Fatal编程技术网

按Excel上的值数组筛选

按Excel上的值数组筛选,excel,sorting,Excel,Sorting,我有一个关于在Excel中筛选行的问题 我有一张大桌子,有一万多行。每行都有一个唯一的ID。 我复制了我的表,对一些行进行了修改,并突出显示了它们 我需要根据uniqueID的值数组选择行。 (ID字段如下:1、2、3、4、5、…、10500)形成第一个Excel表的未修改副本 如果我理解正确,您希望能够轻松查看/访问修改的行吗 您可以添加一个单独的列,在修改的行中添加一个值,然后按此列对整个表进行排序。您可以在表的顶部或底部找到修改后的条目 一旦不再需要这些信息,请清除此新列,并按ID访问表(

我有一个关于在Excel中筛选行的问题

我有一张大桌子,有一万多行。每行都有一个唯一的
ID
。 我复制了我的表,对一些行进行了修改,并突出显示了它们

我需要根据unique
ID
的值数组选择行。
(ID字段如下:
1、2、3、4、5、…、10500
)形成第一个Excel表的未修改副本

如果我理解正确,您希望能够轻松查看/访问修改的行吗

您可以添加一个单独的列,在修改的行中添加一个值,然后按此列对整个表进行排序。您可以在表的顶部或底部找到修改后的条目


一旦不再需要这些信息,请清除此新列,并按ID访问表(如果需要)。变量:保留此列并增加编辑时插入的值,以便您可以按排序,我将用以下示例数据演示

A1:D16中以蓝色为主的表是一个名为myTable的ListObject。F3:I13中主要是绿色的表是一个名为MyTable\u Copy的ListObject

要根据myTable_Copy的ID列中找到的ID筛选myTable ListObject,我们需要构建一个ID号作为字符串的数组。一个函数可以用于此。请记住,过滤器将需要一个看起来像整数的字符串数组,而不是真正的整数。如果有特殊的数字格式,如前导零,则必须更改函数以适应该格式

点击Alt+F11,当VBE打开时,立即使用下拉菜单插入► 模块(Alt+I,M)。将以下内容粘贴到名为Book1-Module1(代码)的新模块代码表中

现在我们需要一个子函数来调用该函数,并根据返回的数组筛选myTable。在同一模块工作表中,粘贴以下内容

Sub main()
    Dim vIDs As Variant

    vIDs = gather_IDs("myTable_Copy", "ID")

    With ActiveSheet
        .ListObjects("myTable").Range.AutoFilter Field:=1, Criteria1:=(vIDs), _
            Operator:=xlFilterValues
    End With

End Sub
请注意,传递到
Criteria1
参数中的变量数组用括号括起来括号很重要。如果没有括号,则
.AutoFilter
命令不会将变量数组识别为数组,并且只使用数组中的第一个值作为筛选条件

点击Alt+Q返回工作表,然后点击Alt+F8打开宏对话框并运行宏。您应该会收到与以下类似的结果

Sub main()
    Dim vIDs As Variant

    vIDs = gather_IDs("myTable_Copy", "ID")

    With ActiveSheet
        .ListObjects("myTable").Range.AutoFilter Field:=1, Criteria1:=(vIDs), _
            Operator:=xlFilterValues
    End With

End Sub

我需要使用值数组从文档副本中选择行。我将修改这个问题。