ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 山菊花

墙上那一串串红辣椒——数组入门讲座

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2007-8-25 11:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:数组集合和字典
终于把数组这部分浏览完,收获太大了,感谢山菊花老师的无私奉献。

TA的精华主题

TA的得分主题

发表于 2007-8-25 13:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

无私的人啊~~~~~~~~~

TA的精华主题

TA的得分主题

发表于 2007-8-25 15:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
山版主果然是传说中的牛人

TA的精华主题

TA的得分主题

发表于 2007-8-25 18:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-9-16 20:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用山菊花在2006-10-26 16:15:47的发言:


园子里是不是有红苹果?
你手中的牌是不是有红桃K?
我们用眼睛一瞄就知道。数组元素中是不是有“张三”,是不是有“李四”,我们如何知道?不用担心,Filter()函数刚好可以帮你忙。
Filter()函数在一维数组中搜索文本型数据,并把结果保存到指定的数组中。
A1单元格是以逗号分隔的姓名串,部分有重复,要求剔除其中重复的姓名,把不重复的姓名写入单元格A2向右的区域。
第一步,把所有姓名保存到数组xm()中;
第二步,建立一个数组Arr()保存结果,遍历xm()过程中,检查Arr()中是否存在当前的姓名,用命令:
Temp = Filter(Arr, xm(i)) '在数组Arr()中搜索当前值xm(i),如果找到,结果保存到Temp()数组中,如果找不到,返回一个空的数组Temp()
根据Temp()数组的大小,可以知道当前值xm(i)是不是一个重复的值。
参考:数组入门11.xls CZJ8UdJM.rar (7.96 KB, 下载次数: 53)


TA的精华主题

TA的得分主题

 楼主| 发表于 2007-9-16 22:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复:(啊一)筛选不重复值

Filter()在搜索中使用的是模糊比较(截取左起相同长度字符进行比较)。数组Arr()中存在元素“R11”时,搜索“R1”,同样会将“R11”包含到筛选结果中。

这种情况下,必须先将原始数据进行排序,顺向搜索时使用升序排列,反向搜索时使用降序排列(如附件所示)。

如果原数据不允许排序,可将数据保存到数组后对数组元素进行排序。通常采用字典技术操作更简单,如示例:

qV3oRMVc.zip (10.46 KB, 下载次数: 131)

 
推荐阅读:

[分享]浅谈DICTIONARY(字典)对象
作者:
northwolves   浏览:   回复:  →   Excel VBA程序开发 2007-9-8 18:11:32  [精华]

TA的精华主题

TA的得分主题

发表于 2007-9-17 02:35 | 显示全部楼层

 这样的讲座太好了

一个一个的小专题学,汇总一起,就成为EXCEL中高手。

有窗体讲座吗?

非常感谢!

TA的精华主题

TA的得分主题

发表于 2007-9-26 14:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-10-4 18:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

super lecture!

TA的精华主题

TA的得分主题

发表于 2007-10-7 23:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

数组入门总结:工作(完成习题3,未完待续)

1.
A1向右连续8个单元格中,可用命令:
Range(“a1:h1”)=cname
我们认识的这类数组,称为一维数组,一维数组是一个水平数组,相当于工作表中的行。如果要把姓名按垂直方向填充到单元格,可转置命令。如,把这个数组写入到A1:A8单元格中:
Range(“a1:a8”)= WorksheetFunction.Transpose(cname)

2. 第二个重要的特征,是数组元素的有序性,一组数据有序地保存到数组变量中。数组中,用数组名加序号(称索引值)构成唯一的名称对元

素进行引用。元素与序号一一对应,根据序号,可以修改和读取指定位置上的元素。

3.Change 事件无处不在.
Private Sub Worksheet_Change(ByVal Target As Range) '修改单元格的值时运行本程序 
       
    If Target.Address = "$D$10" Then '如果修改D10单元格的值
        cname = Array("林思明", "曾玉婷", "曾国文", "林伟权", "林兴发", "刘卓怀", "曾仙婷", "林平")
        Range("d11") = cname(Target) 'Target 表示D10单元格的值
    End If
   
End Sub

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 08:40 , Processed in 0.041233 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表