VBA宏在Excel 2016中不起作用

时间:2017-04-14 09:41:03

标签: excel vba excel-vba

我使用代码将范围从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之间是否存在影响工作宏的区别吗?

2 个答案:

答案 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