Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何更改此代码,使it任务计划程序可以将其作为.vbs文件运行?_Vba_Outlook - Fatal编程技术网

Vba 如何更改此代码,使it任务计划程序可以将其作为.vbs文件运行?

Vba 如何更改此代码,使it任务计划程序可以将其作为.vbs文件运行?,vba,outlook,Vba,Outlook,我有一些vba代码,可以发送带有附件的电子邮件。它目前以vba项目的形式存在于excel中,但我希望能够将其保存为vbs脚本,这样我就可以使用task scheduler每晚启动它。它只在我假设的项目模块中起作用,因为我必须添加对outlook库的引用。如果我在记事本中将脚本保存为.vbs,它将不会运行 Option Explicit Sub SendBasicEmail() Dim olApp As Outlook.Application Dim olEmail As Ou

我有一些vba代码,可以发送带有附件的电子邮件。它目前以vba项目的形式存在于excel中,但我希望能够将其保存为vbs脚本,这样我就可以使用task scheduler每晚启动它。它只在我假设的项目模块中起作用,因为我必须添加对outlook库的引用。如果我在记事本中将脚本保存为.vbs,它将不会运行

Option Explicit

Sub SendBasicEmail()

    Dim olApp As Outlook.Application
    Dim olEmail As Outlook.MailItem

    Set olApp = New Outlook.Application
    Set olEmail = olApp.CreateItem(olMailItem)

    With olEmail 

        .Display
        .Attachments.Add "FileDirectory"
        .To = "my email"
        .Subject = "Subject"
        .Send

    End With

End Sub

Outlook或任何其他Office应用程序不能在服务(如调度器)中使用。

我不知道您是否可以从服务中使用它,但如果您将此代码保存到扩展名为.vbs的文本文件中,此代码将与Excel VBA版本相同:

Option Explicit

Const olMailItem = 0

Sub SendBasicEmail()
    Dim olApp: Set olApp = CreateObject("Outlook.Application")
    Dim olEmail: Set olEmail = olApp.CreateItem(olMailItem)
    With olEmail 
        .Display
        .Attachments.Add "FileDirectory"
        .To = "my email"
        .Subject = "Subject"
        .Send
    End With
End Sub

SendBasicEmail
主要区别是:

  • 无法静态引用Outlook库,因此必须使用CreateObject
  • 由于缺少库,您必须查找常量的值(例如olMailItem)
  • 您不能将变量声明为特定类型,您只能给它们一个名称,它们都是变量
  • 您必须直接调用此子项,例如,在文件末尾调用,而不是从按钮的事件处理程序调用

当我从excel中的VB项目内部运行脚本时,我的脚本可以正常工作。如果我将代码复制到文本编辑器中并将其保存为.vbs文件,则在尝试打开它时会出现编译错误。确切的编译错误是什么?很好。这起作用了。我将不得不四处修补,看看是否能让它与服务一起工作。