Excel中不重复的人的姓名的VBA代码

时间:2023-08-01 12:24:33 

学习一下求出Excel中不重复的人的姓名的VBA代码。

当然,还是使用VBA中的字典来处理。假设有3张工作表,每张表格的A列都是姓名列,所有这些姓名中有些是重复的,要求编写一段代码,在另一个工作表上显示不重复的姓名。

使用VBA的话,代码如下:

Dim i&, Myr&, Arr

Dim d, k, t, Sht As Worksheet

Set d = CreateObject("Scripting.Dictionary")

For Each Sht In Sheets

If Sht.Name <> "Sheet4" Then

Myr = Sht.[a65536].End(xlUp).Row

Arr = Sht.Range("a2:a" & Myr)

For i = 1 To UBound(Arr)

d(Arr(i, 1)) = ""

Next

End If

Next

k = d.keys

Sheet4.[a3].Resize(d.Count, 1) = Application.Transpose(k)

Set d = Nothing

部分代码解释:

1、For Each Sht In Sheets :For Each…Next循环结构,这种形式是VBA特有的,用于对对象的循环非常适用。意思是在所有的工作表中依次循环。

2、If Sht.Name <> "Sheet4" Then :如果这个工作表的名字不等于”Sheet4”时执行下面的代码。

3、Myr = Sht.[a65536].End(xlUp).Row :求得这个工作表A列有数据的最后一行的行数,把它赋给变量Myr。这里用了长整型数据类型(Long),数据范围最大可到2,147,483,647,是为了避免数据很多的时候会超出整型数据类型(Integer)而出错,因为整型数据类型数据范围最大只到32,767。

4、Arr = Sht.Range("a2:a" & Myr) :把A列数据赋给数组Arr。

5、For i = 1 To UBound(Arr) :For…Next循环结构,从1开始到数组的最大上限值之间循环。Ubound是VBA函数,返回数组的指定维数的最大值。

6、d(Arr(i, 1)) = “” :这句代码的意思就是把关键字Arr(i,1)加入字典,关键字对应的项为空,相当于字典中的这个关键字没有解释。和d.Add Arr(i,1), ""的效果相同,只是代码更简洁一些。

7、k=d.keys :把字典d中存在的所有的关键字赋给变量k。得到的是一个一维数组,下限为0,上限为d.Count-1。Keys是字典的方法,前面已经讲过了。

8、Sheet4.[a3] .Resize(d.Count, 1) = Application.Transpose(k) :把字典d中所有的关键字赋给表4以a3单元格开始的单元格区域中。

标签:代码,字典,循环,数组,Excel函数
0
投稿

猜你喜欢

  • Wps中进行制作三线表的操作方法

    2022-07-13 03:28:49
  • wps文字如何使用书签功能

    2022-03-31 18:41:32
  • 打开Word时提示:Word遇到问题需要关闭。我们对此引起的不便表示

    2023-01-30 09:06:26
  • 微星主板怎么设置Bios?

    2022-03-24 13:06:05
  • WPS PPT给图片添加蒙层效果的方法

    2023-10-19 13:38:06
  • 任务管理器使用问题_xp、win7、win10任务管理使用问题汇总

    2023-08-07 12:48:13
  • Win10系统无线网络出现感叹号怎么处理?

    2022-09-13 05:49:55
  • 如何与好友开启 Apple Watch 健身竞赛?

    2023-01-27 18:37:26
  • 戴尔Latitude笔记本重装win10系统教程

    2023-08-17 09:19:27
  • Win10系统怎么将自己的照片展示在开始菜单中

    2022-02-11 09:25:32
  • win7系统出现蓝屏并提示错误代码0x0000005A的原因及解决方法

    2022-10-03 23:58:24
  • Money Pro for Mac如何导入账单?Money Pro Mac导入银行账单的方法

    2023-09-05 02:19:43
  • word怎么旋转文字方向

    2023-11-29 20:35:10
  • win7 快速显示桌面 windows7窗口变透明的技巧与方法(图文教程)

    2022-05-07 02:34:47
  • PPT如何批量排版图片 PPT批量排版图片动画教程

    2023-12-19 09:08:15
  • PPT怎么制作曲面聚焦光长阴影?

    2022-04-02 06:42:39
  • 360浏览器无法显示图片验证码的解决方法分享

    2023-09-12 21:03:30
  • Windows 10杀毒软件大PK:Defender首入前三

    2022-11-21 01:12:28
  • 从新系统开始,苹果将削减Siri与第三方应用之间的集成

    2022-09-18 11:28:56
  • 如何在excel2019中设置页眉和页脚的方法

    2022-02-28 12:16:31
  • asp之家 电脑教程 m.aspxhome.com