以.csv或.xls发送活动工作簿
我正尝试将我的工作簿作为附件发送到电子邮件中,作为.csv或.xls文档发送。 由于我使用.xlsm文件来运行我的macros,附件将是一个.xlsm文件。 我的工作簿应该是一个Web应用程序的input,我需要它是.xls或.csv。
是否有任何线我可以添加到我的代码下面创build一个.csv或.xls文件发送之前? 我不想在我的计算机上保存额外的副本,只是想要更改附件中的文档types。
Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = "" .CC = "" .BCC = "" .Subject = "" .Body = "" .Attachments.Add ActiveWorkbook.FullName .Send End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing
您需要实际创build工作簿的某个副本以更改文件types,将其附加并发送。 你可以用一个函数来做到这一点:
Function GetCSVCopy() As String Set wb = ActiveWorkbook Set tempSheet = ActiveSheet.Copy tempName$ = Environ$("TEMP") & "\" & Replace$(wb.Name, ".xlsm", ".csv") tempSheet.SaveAs tempName, xlCSV tempSheet.Close False wb.Activate GetCSVCopy = tempName End Function
像这样使用:
With OutMail .To = "" .CC = "" .BCC = "" .Subject = "" .Body = "" attName$ = GetCSVCopy .Attachments.Add attName .Send End With Kill attName '// Remove file after use.