gpt4 book ai didi

excel - 如何从 Excel 选择 'Reference' 到用户的 MS Outlook 版本?

转载 作者:行者123 更新时间:2023-12-04 13:34:23 25 4
gpt4 key购买 nike

我想在 Excel 中运行代码,与 Outlook 对话。

我可以从 VBE 中的 Tools->References 选择正确的引用。

我想让我的代码为其他用户运行。他们将拥有不同版本的 Outlook 和 Excel。

有没有办法让代码选择对 MS Outlook 的正确引用,或者告诉我是否未安装 Outlook,等等?

最佳答案

我使用的函数应该适用于 Outlook 2010。如果您使用的是不同版本的 Office,您可能需要更改路径/参数,或者如果您必须处理多个版本的 Office,那么您将需要一些额外的逻辑来处理版本控制,但这是它的基础。

如果引用不存在,则此子例程添加引用

Sub AddRefToOutlook()
Const outlookRef as String = "C:\Program Files (x86)\Microsoft Office\Office14\MSOUTL.OLB"

If Not RefExists(outlookRef, "Microsoft Outlook 14.0 Object Library") Then
Application.VBE.ActiveVBProject.References.AddFromFile _
outlookRef
End If
End Sub

此函数检查引用是否存在(或不存在)

Function RefExists(refPath As String, refDescrip As String) As Boolean
'Returns true/false if a specified reference exists, based on LIKE comparison
' to reference.description.

Dim ref As Variant
Dim bExists As Boolean

'Assume the reference doesn't exist
bExists = False

For Each ref In Application.VBE.ActiveVBProject.References
If ref.Description Like refDescrip Then
RefExists = True
Exit Function
End If
Next
RefExists = bExists
End Function

或者

使用早期绑定(bind)(使用引用)在您的机器上开发代码,然后在分发之前,更改所有特定于 outlook 的声明(例如,As MailItemAs Outlook。 Application 等)到通用 As Object 类型。您的代码仍将执行并且不需要引用。

对于后期绑定(bind),所需要的只是适当的库位于用户的机器上。这通常不是问题,因为您没有使用任何类型的自定义类型库或 dll,而是标准的 Office 组件库,它不会成为正常 Windows 安装的一部分。

唯一立即想到的其他区别是您不能在赋值或声明中使用 New 关键字,例如:

Dim olApp as New Outlook.Application

或者:

Dim olApp as Outlook.Application
Set olApp = New Outlook.Application

相反,您必须使用 CreateObject 方法:

Dim olApp as Object 'Outlook.Application object
Set olApp = CreateObject("Outlook.Application")

关于excel - 如何从 Excel 选择 'Reference' 到用户的 MS Outlook 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24630378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com