我使用代码将范围从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)
我不知道出了什么问题。我在互联网上找到的所有内容都无济于事。 有人知道Excel 2013和2016之间是否存在影响工作宏的区别吗?
答案 0 :(得分:1)
以管理员身份运行Excel可以解决我的问题。
错误说明对我来说并不明显。
希望它能帮助别人。
感谢。
答案 1 :(得分:0)
嘿我想建议此代码将帮助您将数据范围复制到邮件正文中,它的部分代码,需要用您的代码进行调整,
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