Outlook 表单:从 Excel 导入/VLOOKUP 数据?

Posted

技术标签:

【中文标题】Outlook 表单:从 Excel 导入/VLOOKUP 数据?【英文标题】:Outlook Forms: Importing / VLOOKUP Data from Excel? 【发布时间】:2013-05-13 13:20:45 【问题描述】:

我对 Outlook 表单有点陌生,但对整个 VBA 不熟悉 - 也不是表单的 html/Web 设计。但是,我的问题是找到一种将两者结合起来的方法。

我正在尝试设计一个表格供用户填写,并根据他们在下拉框中填写的内容,告诉他们我们希望他们在电子邮件中附加什么内容。目前我们在 Excel 中完成了这项工作,基于 dropbox,然后 VLOOKUPS 到包含所需表格的第二个电子表格。

无论如何,我是否可以在我的 VBA Outlook 表单中使用 VLOOKUP 导入 Excel,以便它可以查找我们希望用户执行的附件?否则,这将是 VBA 中的大量 SELECT CASE 语句 =/

【问题讨论】:

抱歉 - 不理解您的字典参考(或笑话?)链接。可能解释更多?如果我能找到的最接近的是:***.com/questions/3196081/… - 但在这个问题中,他们正在将 Excel 转换为 Access DB 表。坦率地说,我不明白为什么 Excel 表格不可能做到这一点。 任何人都可以提供帮助吗?在这一点上有点不知所措,除非有人知道一种从 Outlook 表单模板中提取 Excel 数据的方法——因为尝试从 Excel 中编写我需要的所有数据太难了。 【参考方案1】:

这似乎对我有用。 其中一些是我从此类网站拼凑而成的,其余的都是我自己从头开始创建的。

当我点击我的按钮时:

会出现一个输入框,这是将在电子表格中查找的值。 它在范围(在代码中指定)中查找匹配项 返回左边两列的值。 找到匹配项后,会将其放入 Outlook 的主题行中。
Dim jobno As String
Dim Proj As String

Sub Test()
    jobno = InputBox("Job Number?", "Test")
    GetNameFromXL
    If jobno <> "" Then
        Set myItem = Application.CreateItem(0)
        If Proj <> "" Then
            myItem.Subject = jobno & " - " & Proj & " - " & Format(Date, "dd.mm.yy")
        Else
            myItem.Subject = jobno & " - " & Format(Date, "dd.mm.yy")
        End If
        myItem.Display
    Else
        Exit Sub
    End If
End Sub


Sub GetNameFromXL()

'Late binding.  No reference to Excel Object required.
Dim xlApp As Object
Dim xlWB As Object
Dim xlWS As Object

Set xlApp = CreateObject("Excel.Application")
'Open the spreadsheet to get data
Set xlWB = xlApp.Workbooks.Open("X:\...\FILENAME.xlsx") ' <-- Put your file path and name here
Set xlWS = xlWB.Worksheets(1) ' <-- Looks in the 1st Worksheet

Debug.Print "-----Start of 'For Each' loop"
For Each c In xlWS.Range("A6:A100") 'Change range to value you want to 'VLookUp'
Proj = c.Offset(0, 2).Value 'This looks at the 2nd column after the range above
Debug.Print c & Proj
    If jobno = c Then
        Debug.Print "-----Match Found:  " & jobno & " = " & Proj
        GoTo lbl_Exit
    Else
    End If
Next c
Debug.Print "-----End of For Each loop"
MsgBox jobno & " not found in WorkBook."

'Clean up
Set xlWS = Nothing
Set xlWB = Nothing
Set c = Nothing
Proj = ""
xlApp.Quit
Set xlApp = Nothing
lbl_Exit:
Exit Sub
End Sub

【讨论】:

以上是关于Outlook 表单:从 Excel 导入/VLOOKUP 数据?的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA Excel 浏览文件夹以在 Outlook 邮件中附加文件 [重复]

outlook express里面的通讯簿怎么转换成txt或者excel文件

把excel文件用outlook发送时,还要再打开outlook中点击“发送接受”按钮才能发送,能否直接从excel中发送

从 Outlook 下载附件并在 Excel 中打开

VBA:将表格从 Excel 发送到 Outlook [重复]

从excel vba发送outlook邮件