0

这是我第一次向大家提问。我是一名 SQL 开发人员,对 VB 非常熟悉。

我为我的部门管理一个在线数据库 Quickbase,并通过这个网站管理报告申请。我为每个人创建一张票,该票会创建一封电子邮件通知开发人员。负责该任务。我们为每个传入的请求设置了文件夹,手动创建所述文件夹非常费力且令人沮丧。

所以我询问并环顾四周,发现了一个能够执行我需要的脚本,或者我被告知。但是,我不确定如何根据需要对其进行自定义,也不确定如何正确实施。这就是我需要你的帮助的地方,SO的公平编程之神,请帮助我杀死这条龙,这个领域的所有财富都将属于你*!

Outlook VBA 

Sub MakeFile(MyMail As MailItem)
    myMailEntryID = MyMail.EntryID
    Set outlookNameSpace = Application.GetNamespace(“MAPI”)
    Set outlookMail = outlookNameSpace.GetItemFromID(myMailEntryID)
    MyArgument = OutlookMail.Subject
    Dim sMyCommand = “c:\makefile.bet ” & MyArgument
    Shell “cmd /c ” & sMyCommand, vbHide
End Sub
Makefile.bat
@echo off
cls
mkdir %1

网站 URL 为:www.quickbase.com 根文件夹路径:h:///ntsp/data/reports -criteria/quickbase docs/[要创建的文件夹]

*财富不是金钱,而是善良的感觉,只有通过帮助书呆子才能获得完整的感觉,哦,它使e-peen变得强大!

4

1 回答 1

0

作为一个书呆子,我会让你朝着正确的方向开始。我认为我们可以单独使用 VBA 实现您想要的,而不需要使用 shell。

首先,我们需要挂钩这一切应该何时发生的事件。我想那是您的收件箱收到电子邮件的时候。如果我在这里就是这一切的开始。

请理解两件重要的事情。

  1. 这仅适用于进入您收件箱的项目。因此,如果您已经有将项目移动到另一个文件夹的规则,它将不起作用。

  2. 您需要“测试”传入的电子邮件 - 我的示例显示了对该主题的测试。它只会在主题中有“我的测试”时才称您为特殊例程

在 Visual Basic 编辑器中输入代码:

在工具菜单上,指向宏,然后单击 Visual Basic 编辑器。在项目窗格中,单击以展开文件夹,然后双击 ThisOutlookSession 图标。在代码窗口中键入或粘贴以下代码。

Dim WithEvents objInboxItems As Outlook.Items


' Run this code to start your rule.
Sub StartRule()
   Dim objNameSpace As Outlook.NameSpace
   Dim objInboxFolder As Outlook.MAPIFolder

   Set objNameSpace = Application.Session
   Set objInboxFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
   Set objInboxItems = objInboxFolder.Items

End Sub

' Run this code to stop your rule.
Sub StopRule()
   Set objInboxItems = Nothing
End Sub

' This code is the actual rule.
Private Sub objInboxItems_ItemAdd(ByVal Item As Object)
   If Item.Subject = "My Test" Then
      Call checkForFolder
   End If
End Sub

Private Sub checkForFolder()



End Sub
  1. 在文件菜单上,单击保存 VbaProject.OTM。
  2. 您现在可以运行 StartRule 和 StopRule 宏来打开和关闭规则。
  3. 退出 Visual Basic 编辑器。

(您可能需要启动和停止 Outlook 才能将变量“挂钩”。

一旦你得到这个工作和理解,然后你可以移除开关。

然后,您必须决定创建新文件夹的测试,以便我们可以测试电子邮件并将其与现有文件夹进行比较,然后再创建一个新文件夹等。

于 2011-04-16T09:56:44.090 回答