2017-04-14 274 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作爲管理員解決了這個問題在我的情況。

從錯誤描述中我不明顯。

所以希望它能幫助別人。

謝謝。