VBAmacros在Excel 2016中不起作用

我使用代码从https://www.rondebruin.nl/win/s1/outlook/bmail2.htm将范围复制到电子邮件正文中。 它在Excel 2013中完美运行,但在Excel 2016中不起作用。

在Excel 2016中,此代码存在错误“运行时错误”1004:应用程序定义或对象定义的错误:

With TempWB.PublishObjects.Add( _ SourceType:=xlSourceRange, _ Filename:=TempFile, _ Sheet:=TempWB.Sheets(1).Name, _ Source:=TempWB.Sheets(1).UsedRange.Address, _ HtmlType:=xlHtmlStatic) 

我不知道什么是错的。 我在互联网上find的所有东西都没有帮助。 有人知道Excel 2013和2016之间是否有任何区别可以影响工作macros?

以pipe理员身份运行Excel解决了我的问题。

错误描述对我来说并不明显。

所以希望它能帮助别人。

谢谢。

嘿,我想build议这个代码将帮助你复制数据范围到邮件正文,这是代码的一部分,需要调整你的代码,

 ThisWorkbook.PublishObjects.Add( _ SourceType:=xlSourceRange, _ Filename:=strFilename, _ Sheet:=strWorksheetName, _ Source:=strRangeAddress, _ HtmlType:=xlHtmlStatic).Publish True Set objFilesytem = CreateObject("Scripting.FileSystemObject") Set objTextstream = objFilesytem.GetFile(strFilename).OpenAsTextStream(1, -2) strTempText = objTextstream.ReadAll objTextstream.Close For Each objShape In Worksheets(strWorksheetName).Shapes If Not Intersect(objShape.TopLeftCell, Worksheets( _ strWorksheetName).Range(strRangeAddress)) Is Nothing Then blnRangeContainsShapes = True Exit For End If Next objShape