Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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公式或VBA代码映射到列表的最佳方法是什么_Excel_Vba - Fatal编程技术网

将excel公式或VBA代码映射到列表的最佳方法是什么

将excel公式或VBA代码映射到列表的最佳方法是什么,excel,vba,Excel,Vba,我有一个excel工作表,它有两列 名称和城镇 同一城镇有许多行(但每行都有一个不同的名称) 下面是一个例子: ||名称| |镇| | |乔|纽约| |比尔|纽约| |汤姆| NJ | 我现在想要一个由城镇填充的下拉列表,当我点击下拉列表并选择一个城镇时,它会在工作表的一个单元格中放置一个名称的串联列表 所以在这个例子中,下拉列表将显示NJ和NYC,如果我选择NYC,它将显示: 牢房里的“乔,比尔” 关于这是否可行的任何建议?第一部分,下拉列表-使用数据验证。参见链接 第2部分,基于选择更新单

我有一个excel工作表,它有两列

名称城镇

同一城镇有许多行(但每行都有一个不同的名称)

下面是一个例子:

||名称| |镇| |
|乔|纽约|
|比尔|纽约|
|汤姆| NJ |

我现在想要一个由城镇填充的下拉列表,当我点击下拉列表并选择一个城镇时,它会在工作表的一个单元格中放置一个名称的串联列表

所以在这个例子中,下拉列表将显示NJ和NYC,如果我选择NYC,它将显示:

牢房里的“乔,比尔”


关于这是否可行的任何建议?

第一部分,下拉列表-使用数据验证。参见链接

第2部分,基于选择更新单元格:


使用
工作表\u Change
事件,监视包含城镇列表值的单元格的更改。

如果要避免最后一部分使用VBA,可以在列表的一侧创建一个帮助器列

如果表如A1:B3所示,请在C列中创建一个帮助器列,如下所示

对于第一行,助手公式将为=IF(B1=SelectedCity,A1&“,”,”) 对于第二行,助手公式将为=C1&IF(B2=SelectedCity,A2&“,”和“”) 将第二行复制到所有剩余行

该公式归纳性地建立了一个以逗号分隔的姓名列表,取决于所选城市

最后,用公式=IF(RIGHT(C3,2)=“,”,LEFT(C3,LEN(C3)-2),C3)修剪逗号分隔字符串末尾的多余逗号

这是你需要的绳子