Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
在vba中两次筛选和查找唯一值的最佳方法?_Vba_Excel - Fatal编程技术网

在vba中两次筛选和查找唯一值的最佳方法?

在vba中两次筛选和查找唯一值的最佳方法?,vba,excel,Vba,Excel,我想找到一种方法来找到第1列的唯一值,并找到第2列中与第1列中每个项目对应的唯一项目,这样我就可以将“更高级别”的内容映射到“更低级别”的内容 例如,excel工作表如下所示 Column 1 Column 2 Column 3 New York Brooklyn ....more information about col 2 New York Manhattan New York Sta

我想找到一种方法来找到第1列的唯一值,并找到第2列中与第1列中每个项目对应的唯一项目,这样我就可以将“更高级别”的内容映射到“更低级别”的内容

例如,excel工作表如下所示

Column 1         Column 2          Column 3 
New York         Brooklyn          ....more information about col 2 
New York         Manhattan 
New York         Staten Island 
New York         Queens 
New York         Bronx 
New Jersey       Newark 
New Jersey       Jersey City 
New Jersey       Edison 
CT               Hartford 
CT               Windsor 
当选择纽约时,我将不得不聚集布鲁克林、曼顿、斯塔顿岛、皇后区和布朗克斯区。(我正在制作一个列表框,这样当选择纽约时,上面的行政区会显示在第二个列表框中,但当用户指定州为纽约时,我不知道如何获取行政区信息。我需要excel在excel工作表中搜索,直到找到纽约,然后用纽约查看列旁边的单元格)


做这件事的最佳方式是什么?我将如何做?字典、集合、for循环、自动筛选

根据我的经验,如果你有很多数据,使用字典可能会更快。然而,在字典中,每个记录必须有唯一的ID+您必须以某种方式处理数据

但也可以对每个循环使用。 我假设你会通过所有的细胞,例如。G在A列中,您正在查找特定的记录,例如。G“newyork”如果找到它,则将行数保存到长变量“start”中,然后继续循环,直到单元格值为“newyork”。如果达到这一点,“结束行”的值应该是循环步骤-1。然后可以继续执行下一个循环,该循环将从B列(或下一列)向列表框添加元素

我在“商业”电子表格中看到的解决方案是在用户表单中有文本框(输入)和列表框。当您在输入(文本框)中键入内容时,在每个字母后,宏都会触发,并在隐藏(vba隐藏)选项卡中进行自动筛选。然后,它在xlCellTypeVisible设置的范围内对此选项卡中的每个循环进行一次遍历,并将数据添加到列表框中


总而言之,这取决于数据量,您必须自己尝试哪种解决方案最适合您。

我认为您正在尝试