farpoint.web.spread 标题行重复_自动去重复的下拉菜单,厉害了

本文介绍了如何在Excel中利用VBA代码创建一个基于数据源的去重下拉列表。通过示例展示了具体步骤,包括使用Dictionary对象来去除重复项,然后在A列设置数据验证下拉列表,确保只显示不重复的人名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们今天聊的内容是单元格的数据有效性(2010版本后更名为数据验证),在EH论坛上,星光经常碰到网友提问下面酱紫的问题:

如何创建去除重复项后的下拉列表?

举个小栗子。

如下图所示,D列是一些人名,含有重复项。

现在需要根据D列的人名,在表格的A列创建去除重复人名后的数据验证下拉列表。

f73692d5237e381bbcf7bb5c2c08c43f.png

动画效果:

2f3a8a02423a653d69f68ed573266e96.gif

代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect([a:a], Target) Is Nothing Then Exit Sub

'如果选择的单元格不存在于A列,则退出。A列是设置数据验证的区域

If Target.Rows.Count > 1 Then Exit Sub '不允许选择多行

Dim arr, brr, i&, j&, k&, s

Dim d As Object

Set d = CreateObject("scripting.dictionary") '后期字典

arr = Range("d1:d" & Cells(Rows.Count, "d").End(xlUp).Row)'数据来源列

If Not IsArray(arr) Then Exit Sub

'如果不存在数据源选项,则arr非数组,那么退出程序

For i = 2 To UBound(arr)

'D1是标题,从第2行开始遍历数据源,将人名装入字典

If arr(i, 1) <> "" Then d(arr(i, 1)) = ""

Next

s = Join(d.keys,

Spread for Windows Forms 是一个综合性的、用于微软.NET 平台的Windows Forms 应用程序开 发的表格控件。它集成了丰富的表格功能、工作表功能,并可以与多种数据源进绑定。一个Spread 控件可以处理多达20 亿个工作表,每个工作表可以有20 亿和20 亿列,并且支持跨工作表的数据引 用和跨工作表的公式引用。Spread 控件已经被业界公认为功能最为强大的表格控件。Spread 在中国也 有了超过10 年的使用历史,得到了许多软件开发人员的认可。 随着 5.0 版本的推出,Spread 增加了对于图表功能的支持。通过超过85 种不同类型的图表和内置 的用户界面,为创建和定制图表提供了全面支持,丰富了数据的展示方式。同时,Spread 与Excel 文 件的兼容性得到了进一步的提升。 虽然 Spread 产品附带了大量的文档和示例代码,但不可否认的是,对于初次接触Spread 的中国 软件开发人员来讲,有时难免会觉得Spread 入门不太容易。本使用指南旨在帮助软件开发人员较快地 了解和运用Spread 的常用功能。开发人员可以在了解Spread 整体功能的基础上,循序渐进地学习单 元格操作、列操作和工作表操作。每个操作都附带了具体的C#和VB 代码,读者可以直接运例子 代码进联系并查看效果。在表格数据操作的基础上,本指南也针对高级数据操作、图形图表、以及和 其他数据格式的交换方面做了进一步的介绍,并且在最后提供了常用词汇的中英文对照表,方便读者查 看。 对于项目管理人员和技术主管来讲,通过对本指南中Spread 主要功能的概览,可以帮助他们决策
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值