设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12345下一页
返回列表 发新帖
查看: 11361|回复: 47
打印 上一主题 下一主题

[模块/函数] 水泥做的女人——浅谈Excel函数的调用

[复制链接]
跳转到指定楼层
#
发表于 2011-4-22 22:24:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 roych 于 2015-6-26 11:14 编辑

       Access在计算方面并不如Excel,复杂的统计不该由Access完成,而是在Excel里完成之后再把数据导入到Access里。不过,有些版友希望Access可以完成Excel的一些工作,这样就可以一劳永逸了。
       我一直觉得应该软件之间尽可能交互使用,扬长避短才能优化工作效率。正如男人是泥做的,女人是水做的,世界才更加精彩。而一旦女子偶尔强势一下无可厚非,但如果永远都一片阳刚,那她也不再是水做的了,应该是水泥做的吧。
       言归正传,以下是对成绩高低进行排名的一段代码(附件里有注释):
  1. Private Sub 排名_Click()
  2. Dim exl As Excel.Application
  3. Dim wb As Excel.Workbook
  4. Dim ws As Excel.Worksheet
  5. Dim rst As New ADODB.Recordset
  6. rst.Open "select * from 成绩表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  7. Set exl = CreateObject("Excel.Application")
  8. exl.Workbooks.Add
  9. Set wb = exl.ActiveWorkbook
  10. With wb
  11. Set ws = exl.Worksheets(1)
  12. ws.Activate
  13. With ws
  14. .Range("A1").CopyFromRecordset rst
  15. rnk = exl.WorksheetFunction.Rank(Me.成绩, .Range("C:C"))
  16. End With
  17. wb.Close False, Me.Name
  18. End With
  19. MsgBox Me.姓名 & "的成绩排名为:第" & rnk & "名", vbInformation
  20. rst.Close
  21. End Sub
复制代码
      这里的知识点有两三个:1、使用ADO打开数据集。2、导出数据集到工作表。3、调用Excel内置函数Rank。
       此外,还有更简单的办法,不过测试时发现第二种方法运行要慢些:
  1. Private Sub 排名2_Click()
  2. Dim xcl As Object
  3. Dim rs As New ADODB.Recordset
  4. rs.Open "select * from 成绩表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  5. Set xcl = CreateObject("excel.sheet")
  6. Set xcl = xcl.Application.ActiveWorkbook.ActiveSheet
  7. With xcl
  8. .[a1].CopyFromRecordset rs
  9. .[k1].Formula = "=rank(" & Me.成绩 & ",C:C)"
  10. End With
  11. MsgBox Me.姓名 & "的成绩排名为:第" & xcl.[k1].Value & "名", vbInformation
  12. Set x = Nothing
  13. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享 分享淘帖 订阅订阅
47#
发表于 2015-6-26 11:03:39 | 只看该作者
特来学习
回复

使用道具 举报

46#
发表于 2013-12-6 00:19:03 | 只看该作者
我要看看
回复

使用道具 举报

45#
发表于 2013-8-17 22:29:12 | 只看该作者
学习
回复

使用道具 举报

44#
发表于 2013-7-23 13:30:16 | 只看该作者
这个好,要好好学习.我喜欢.

点击这里给我发消息

43#
发表于 2013-5-18 21:58:28 | 只看该作者
好东西,学习下
42#
发表于 2013-5-18 11:22:50 | 只看该作者
学习了!!!!!!!
41#
发表于 2013-1-13 08:31:49 | 只看该作者
学习学习
40#
发表于 2013-1-12 22:23:06 | 只看该作者
39#
发表于 2013-1-12 20:28:18 | 只看该作者
确实不错

点击这里给我发消息

38#
发表于 2013-1-10 12:33:37 | 只看该作者
学习之
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-26 00:28 , Processed in 0.094154 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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