调整Outlook的RangetoHTML中的列宽

调整Outlook的RangetoHTML中的列宽,html,excel,vba,Html,Excel,Vba,我从Excel自动发送电子邮件 有时第三列完全在右边,在接收者的邮件窗口之外(而我在使用RangetoHTML之前自动调整单元格) 似乎第二列的宽度设置得更宽了,或者第三列设置得更宽了,并且对齐正确 问题是,这并不是每次都会发生。调整行高很容易,但调整列宽却很难 如何在RangetoHTML中保持宽度格式不变 函数范围HTML(rng作为范围) 作为对象的Dim fso 将T作为对象 将文件设置为字符串 将TempWB设置为工作簿 变暗,变长 TempFile=Environ$(“temp”)和

我从Excel自动发送电子邮件

有时第三列完全在右边,在接收者的邮件窗口之外(而我在使用RangetoHTML之前自动调整单元格)

似乎第二列的宽度设置得更宽了,或者第三列设置得更宽了,并且对齐正确

问题是,这并不是每次都会发生。调整行高很容易,但调整列宽却很难

如何在RangetoHTML中保持宽度格式不变

函数范围HTML(rng作为范围)
作为对象的Dim fso
将T作为对象
将文件设置为字符串
将TempWB设置为工作簿
变暗,变长
TempFile=Environ$(“temp”)和“\”格式(现在是“dd-mm-yy h-mm-ss”)和“.htm”
'复制范围并创建一个新工作簿,以超过中的数据
收到
Set TempWB=工作簿。添加(1)
带临时工作表(1)
.单元格(1).粘贴特殊粘贴:=8
.单元格(1).粘贴特殊值,False,False
.单元格(1).粘贴特殊xlPasteFormats,False,False
Application.CutCopyMode=False
出错时继续下一步
.DrawingObjects.Visible=True
.DrawingObjects.Delete
错误转到0
以
'将工作表发布到html文件
使用TempWB.PublishObjects.Add(_
SourceType:=xlSourceRange_
文件名:=临时文件_
工作表:=临时工作表(1).名称_
来源:=TempWB.Sheets(1).UsedRange.Address_
HtmlType:=xlHtmlStatic)
.发布(真实)
以
'将htm文件中的所有数据读入RangetoHTML
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置ts=fso.GetFile(TempFile).OpenAsTextStream(1,-2)
RangetoHTML=ts.readall
关闭
RangetoHTML=Replace(RangetoHTML,“align=center x:publishsource=”_
“align=left x:publishsource=”)
“关闭TempWB
TempWB.Close savechanges:=False
'删除此函数中使用的htm文件
杀死临时文件
设置ts=无
设置fso=无
设置TempWB=Nothing
端函数
试试这个

With TempWB.Sheets(1)
    .Cells(1).PasteSpecial Paste:=8
    .Cells(1).PasteSpecial xlPasteValues, , False, False
    .Cells(1).PasteSpecial xlPasteFormats, , False, False
     Cells(1).Select
     Cells(1).EntireRow.AutoFit
     Cells(1).EntireColumn.AutoFit
试一试


那代码去哪里了?用你的编辑来显示整个代码。通常在你的答案中添加一些解释,而不是仅仅“试试这个”会有很大的帮助。解释为什么用户应该“尝试这个”。为什么这比目前正在做的更好?它是如何解决问题的。
    On Error GoTo 0
End With
TempWB.Sheets(1).UsedRange.Columns.AutoFit