2017-04-14 140 views
0

我使用代码将范围复制到https://www.rondebruin.nl/win/s1/outlook/bmail2.htm的电子邮件正文中。它在Excel 2013中运行良好,但在Excel 2016中无效。VBA宏不能在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

嘿,我想建议规范将帮助ü复制的数据范围分为邮件正文,它的代码的一部分,,需要与您的代码进行调整,

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 
+0

嗨,谢谢你的回复。但是这段代码是一样的,不幸的是问题仍然存在 – SJ1991

+0

感觉很抱歉,代码不工作,可能它可能是与权限有关的问题,,,! –

1

运行Excel作为管理员解决了这个问题在我的情况。

从错误描述中我不明显。

所以希望它能帮助别人。

谢谢。