我已经创建了一个程序,用户将从excel文件中导入数据,然后将其发送到outlook电子邮件,发送到需要发送给谁的电子邮件中。
我的问题是,如何对其进行编码,以便程序保存导入的excel文件并自动将其附加到电子邮件中?
我的代码被设置为允许输入数据,然后它转储文件,当用户准备发送电子邮件时,他们必须将文件重新附加到电子邮件中。
以下是导入Excel数据代码的一部分:
Dim xl As New Excel.Application
Dim objworksheet As Excel.Worksheet
Dim objWorkbook As Excel.Workbook
Dim ofd As OpenFileDialog = New OpenFileDialog
ofd.DefaultExt = "xlsx"
ofd.FileName = " "
ofd.InitialDirectory = "c:\"
ofd.FilterIndex = "1"
ofd.Filter = "Excel Files (.xlsx)|*.xlsx| Excel Files(.xls)|*.xls| Excel Files (*.xlsm)|*.xlsm"
ofd.Title = "Select file"
If (ofd.ShowDialog() = DialogResult.OK) Then
objWorkbook = xl.Workbooks.Open(ofd.FileName)(这是需要获取的信息,并放置在何处)
导入数据代码的结尾:
xl.ActiveWorkbook.Close(False)
xl.Quit()
Else
ofd.Dispose()
End If这是我的“发送到电子邮件”代码的一部分,而不是用户必须找到相同的文件,我希望程序自动附加相同的文件作为导入的文件。不过,它们来自两个不同的函数,不确定这是否可能。
‘添加Excel文件作为附件
Dim ofd As OpenFileDialog = New OpenFileDialog
ofd.DefaultExt = "xlsx"
ofd.FileName = " "
ofd.InitialDirectory = "c:\"
ofd.FilterIndex = "1"
ofd.Filter = "Excel Files (.xlsx)|*.xlsx| Excel Files(.xls)|*.xls| Excel Files (*.xlsm)|*.xlsm"
ofd.Title = "Select file"
If (ofd.ShowDialog() = DialogResult.OK) Then
OutlookMessage.Attachments.Add(ofd.FileName)
OutlookMessage.Display()
Else
ofd.Dispose()
MessageBox.Show("Must attach excel file to proceed")
End If
Catch ex As Exception
MessageBox.Show("Email could not be created")
Finally
OutlookMessage = Nothing
AppOutlook = Nothing
End Try
End If发布于 2019-08-19 15:19:07
您绝对可以传递变量来获取,您应该这样做。
你的声明应该是这样的:
Public Sub SendMailWithAttachment(ByVal fileName as string)然后,您的代码将使用:
OutlookMessage.Attachments.Add(fileName)
OutlookMessage.Display()要使用这个过程,您可以这样称呼它:
SendMailWithAttachment(ofd.FileName)注意:文件在附件中不应打开。您只是使用文件名,而不是文件对象。
https://stackoverflow.com/questions/57559454
复制相似问题