设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

如何从 Microsoft Access 内调用 Excel 函数

1970-1-1 08:00| 发布者: microsft| 查看: 2791| 评论: 0

   Microsoft Excel 有一些 Microsoft Access 没有的函数,例如,统计函数和加载项函数。通过使用“自动化”功能,可以在 Access 中使用这些 Excel 函数。为此,先请设置对 Microsoft Excel 对象库的引用。 

    要设置对 Microsoft Excel 对象库的引用,请执行下列步骤:
 
    1.在 Access 中,按 ALT+F11 切换到 Visual Basic 编辑器。 
    2.在工具菜单上,单击引用。 
    3.在引用框中,单击Microsoft Excel 9.0 Object Library复选框,然后单击确定
 
    设置引用后,可以使用“对象浏览器”查看所有Microsoft Excel的对象、属性和方法,包括通过Application对象可用的函数。 

    以下两个示例程序中使用了 Microsoft Excel 的统计函数。 

    备注:通过“自动化”功能打开 Excel 之后,Excel 不自动关闭。以下示例程序中使用Quit方法关闭 Excel。有关退出 Excel 的其它信息,请参见 Microsoft Knowledge Base 中的以下文章: 

    Q210129 ACC2000:通过“自动化”功能运行的应用程序总是无法关闭 

示例 1 

    以下函数使用“自动化”功能调用 Excel 的 Median () 函数。数字组的一半在中值之下,而另一半则在中值之上。 

Sub xlMedian()
   Dim objExcel As Excel.Application
   Set objExcel = CreateObject("Excel.Application")
   MsgBox objExcel.Application.Median(1, 2, 5, 8, 12, 13)
   objExcel.Quit
   Set objExcel = Nothing
End Sub

    该函数在消息框中显示 6.5。 

示例 2

    以下函数使用“自动化”功能调用 Excel 的 ChiInv () 函数,该函数返回卡方分布的倒数或单尾概率。 

Sub xlChiInv()
   Dim objExcel As Excel.Application
   Set objExcel = CreateObject("Excel.Application")
   MsgBox objExcel.Application.ChiInv(0.05, 10)
   objExcel.Quit
   Set objExcel = Nothing
End Sub

    该函数在消息框中显示 18.3070290368475。 

    通过直接调用 Excel 引用可以简化代码: 

   Sub xlChiInv()
      MsgBox Excel.Application.ChiInv(0.05, 10)
   End Sub

备注: 使用该语法时,Excel 将保留在内存中,直到重置代码或关闭数据库。 

使用加载项 

    Excel 也使用加载项。这些程序包含自定义函数和命令。如果需要使用包含在加载项程序中的函数,请先打开加载项。以下示例使用LCM(Least Common Multiple) 函数: 

Sub xlAddin()
   Dim objExcel As Excel.Application
   Set objExcel = CreateObject("Excel.Application")

   ' Opens the add-in, which is in the Analysis folder of the
   ' Excel Library Directory.
   objExcel.workbooks.Open (objExcel.Application.librarypath & _
      "\Analysis\atpvbaen.xla")

   ' Runs the AutoOpen macro in the add-in
   objExcel.workbooks("atpvbaen.xla").RunAutoMacros (xlAutoOpen)
   MsgBox objExcel.Application.Run("atpvbaen.xla!lcm", 5, 2)
   objExcel.Quit
   Set objExcel = Nothing
End Sub


    该函数在消息框中显示 10。 

参考

    有关 Automation 的详细信息,在 Visual Basic 编辑器中,单击帮助菜单上的Microsoft Visual Basic 帮助,在“Office 助手”或“应答向导”中输入自动化,单击搜索查看相关的主题。

    有关“对象浏览器”的详细信息,请在 Visual Basic 编辑器中,单击帮助菜单上的Microsoft Visual Basic 帮助,并在“Office 助手”或“应答向导”中键入浏览器,然后单击搜索查看相关的主题。

    有关引用类型库的详细信息,请在 Visual Basic 编辑器中,单击帮助菜单上的Microsoft Visual Basic 帮助,并在“Office 助手”或“应答向导”中键入设置引用,然后单击搜索查看相关的主题。

最新评论

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

GMT+8, 2024-5-3 06:23 , Processed in 0.063786 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部