程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了RangetoHTML 保持 TempWB 打开大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决RangetoHTML 保持 TempWB 打开?

开发过程中遇到RangetoHTML 保持 TempWB 打开的问题如何解决?下面主要结合日常开发的经验,给出你关于RangetoHTML 保持 TempWB 打开的解决方法建议,希望对你解决RangetoHTML 保持 TempWB 打开有所启发或帮助;

我正在使用 Ron de Bruin 的 RangetoHTML 将范围复制到 HTML 电子邮件正文,而无需修改。在我的 Excel 2010 电脑上,它按预期工作。在运行 Excel 2016 的同事的电脑上,它似乎采用了范围,创建了临时工作簿并停止。临时工作簿包括正确的范围,但它永远不会进入电子邮件正文,代码也不会关闭并删除临时工作簿。它仍然正确填充 to/cc 和主题,但 .HTMLbody 是空白的。有什么想法吗?

代码如下:

...
On Error Resume Next

    Dim objOutlook as Object
    Set objOutlook = CreateObject("outlook.application")

    Dim objemail as Object
    Set objemail = objOutlook.CreateItem(olMailitem)

    With objemail
        .To = ""
        .CC = ""
        .bCC = ""
        .Attachments.Add (attachmentPath)
        .Subject = strSubject
        .HTMLbody = RangetoHTML(rng) & signature
        .display
    End With
End Sub

Function RangetoHTML(rng As RangE)
'Changed by Ron de Bruin 28-Oct-2006
'Working in Office 2000-2016

Dim fso as Object
Dim ts as Object
Dim Tempfile As String
Dim  TempWB As Workbook

Tempfile = Environ$("temp") & "\" & Format(Now,"dd-mm-yy h-mm-ss") & ".htm"

'copy the range and create a new workbook to paste the data in
rng.copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
    .Cells(1).PasteSpecial Paste:=8
    .Cells(1).PasteSpecial xlPasteValues,false,false
    .Cells(1).PasteSpecial xlPasteFormats,false
    .Cells(1).SELEct
    Application.Cutcopymode = false
    
    On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.delete
    On Error GoTo 0
End With

'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
    sourceType:=xlsourceRange,_
    filename:=Tempfile,_
    Sheet:=TempWB.Sheets(1).name
    source:=TempWB.Sheets(1).UsedRange.Address,_
    HTMLType:=xlHTMLStatiC)
    .Publish (true)
End With

'Read all data from the htm filE into RangetoHTML
Set fso = CreateObject("ScripTing.fileSystemObject")
Set ts = fso.Getfile(TempfilE).openAsTextStream(1,-2)
RangetoHTML = ts.readall
ts.Close
RangetoHTML = replace(RangetoHTML,"align=center x:publishsource=",_
"align=left x:publishsource=")

'Close TempWB
TempWB.Close savechanges:=false

'delete the htm file we used in the function
Kill Tempfile

Set ts= nothing
Set fso = nothing
Set TempWB = nothing

End Function

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的RangetoHTML 保持 TempWB 打开全部内容,希望文章能够帮你解决RangetoHTML 保持 TempWB 打开所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:保持打开