移除和#xEF»¿;从VBA中的电子邮件签名
我制作了一个excel宏,根据用户数据一次发送多封电子邮件。我将.body更改为.htmlbody以允许使用粗体等。;然而,当我调用电子邮件签名时,它将ï»?置于电子邮件中实际签名之前。我发现这是由于UTF-BOM编码,然而,在这个例子中,我不能简单地更新文件的编码。我需要脚本以更新的(UTF-8)编码实际打开文件,但根本不改变文件。这是到目前为止我的代码。我遗漏了大部分代码,因为我相信唯一的更新将在“GetBoiler”函数上完成移除和#xEF»¿;从VBA中的电子邮件签名,vba,excel,Vba,Excel,我制作了一个excel宏,根据用户数据一次发送多封电子邮件。我将.body更改为.htmlbody以允许使用粗体等。;然而,当我调用电子邮件签名时,它将ï»?置于电子邮件中实际签名之前。我发现这是由于UTF-BOM编码,然而,在这个例子中,我不能简单地更新文件的编码。我需要脚本以更新的(UTF-8)编码实际打开文件,但根本不改变文件。这是到目前为止我的代码。我遗漏了大部分代码,因为我相信唯一的更新将在“GetBoiler”函数上完成 Dim SigString As String Dim Sig
Dim SigString As String
Dim Signature As String
SigString = Environ("appdata") & _
"\Microsoft\Signatures\Default English - Main.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Function GetBoiler(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
Dim SigString作为字符串
作为字符串的数字签名
SigString=Environ(“appdata”)&_
“\Microsoft\Signatures\Default English-Main.htm”
如果Dir(SigString)“,则
Signature=GetBoiler(SigString)
其他的
Signature=“”
如果结束
函数GetBoiler(ByVal sFile作为字符串)作为字符串
作为对象的Dim fso
将T作为对象
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置ts=fso.GetFile(sFile).OpenAsTextStream(1,-2)
GetBoiler=ts.readall
关闭
端函数
无法读取
:
FSO只能读取ASCII文本文件。您不能使用FSO读取ASCII文本文件
Unicode文件或读取二进制文件格式,如Microsoft Word或
微软Excel
由于您使用了奇怪的字符,我想这有点不正确,文件是在8位windows代码页中读取的,因为如果它真的只能读取ASCII,您会看到?
无论如何,如果您可以使用,您可以这样做:
Dim objStream, strData
Set objStream = CreateObject("ADODB.Stream")
objStream.CharSet = "utf-8"
objStream.Open
objStream.LoadFromFile("C:\Users\admin\Desktop\ArtistCG\folder.txt")
strData = objStream.ReadText()
objStream.Close
Set objStream = Nothing
()
Outlook签名
- 罗恩·德布鲁因:
- 堆栈溢出:
签名所做的操作将很有帮助。a背后的想法是人们可以很容易地重现问题。这对你来说也是一个很好的练习,因为它可以缩小问题的范围,让你根本不用发帖!