ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]如何用VBA求得一个数组中最大的数?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-4-10 22:49 | 显示全部楼层 |阅读模式
比如一个数组中包含有1,2,5,8,3,……等一系列的数,如何用VBA获取其中最大的一个数?请守老师和各位侠士多多指教。

TA的精华主题

TA的得分主题

发表于 2005-4-11 07:18 | 显示全部楼层

通常数组中的比较,用冒泡排序法。

请参:

First = LBound(strCell) '取得数组下标 Last = UBound(strCell) '取得数组上标 For i = First To Last - 1 '在数组中循环取值 For j = i + 1 To Last '冒泡法排序 If strCell(i) > strCell(j) Then Temp = strCell(j) strCell(j) = strCell(i) strCell(i) = Temp End If Next j Next i有关冒泡排序法的详细解释,请在EXCEL程序版中以“冒泡排序法”为关键字,搜索回复贴子,其中有一个贴子,较为详细。此处从略。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-13 23:53 | 显示全部楼层
守老师,我学习了很长时间了,可我还是不理解,代码中的i和j到底谁是最大的数?我在运行时用 msgbox i 和 msgbox j 显示发现 j 总是比 i 大1,但有时 j 也不是最大的数,您可不可以再说详细些。谢谢!

TA的精华主题

TA的得分主题

发表于 2005-4-14 02:27 | 显示全部楼层
请参:http://club.excelhome.net/dispbbs.asp?boardid=2&star=1&replyid=17252&id=16250&skin=0&page=1

TA的精华主题

TA的得分主题

发表于 2005-4-16 02:03 | 显示全部楼层
守柔兄: 我试了一个方法就是先引用excel库,然后就可以调用excel中的工作表函数MAX求出数组的最大值了 Excel.Application.WorksheetFunction.max(数组)

TA的精华主题

TA的得分主题

发表于 2005-4-16 05:13 | 显示全部楼层
以下是引用chenjun在2005-4-16 2:03:00的发言: 守柔兄: 我试了一个方法就是先引用excel库,然后就可以调用excel中的工作表函数MAX求出数组的最大值了 Excel.Application.WorksheetFunction.max(数组) 陈军兄说得非常正确,对于数据排序,这是一个好方法!谢谢!
[此贴子已经被作者于2005-4-16 5:14:15编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-16 08:21 | 显示全部楼层
两位版主能不能说的更详细些,如何引用excel库,如何调用MAX?谢谢!

TA的精华主题

TA的得分主题

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

楼主啊,有些事情还是需要自己多努力的,版主不能替你完成所有工作。

守柔版主已经将算法给你了,自己想一下应该可以想通的。当然要让自己变成计算机,以计算机的思考方式思考。另外可以参考很多计算机方面的书籍,冒泡法是很简单的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-16 15:24 | 显示全部楼层
以下是引用ybird在2005-4-16 8:49:00的发言:

楼主啊,有些事情还是需要自己多努力的,版主不能替你完成所有工作。

守柔版主已经将算法给你了,自己想一下应该可以想通的。当然要让自己变成计算机,以计算机的思考方式思考。另外可以参考很多计算机方面的书籍,冒泡法是很简单的。

多谢您的勉励,我会努力的。

TA的精华主题

TA的得分主题

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

又有问题麻烦守老师了:在“D:\文件”目录下有“A1.doc, A2.doc, A5.doc, A43.doc, A121.doc,A23.doc……,B2.doc, B4.doc, B11.doc, B32.doc……”我如何才能用VBA实现对开头字母是“A”的文档进行查找,并将其后面的数字定义为一个数组,加到数组中然后提取其中的最大值?[em08]

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

本版积分规则

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

GMT+8, 2025-1-12 12:29 , Processed in 0.023172 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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