你总是会遇到 vba 和外来字符和网络的问题。
编辑:
因为您无法将单元格值与 html 分开,所以很遗憾,下面的函数在这种情况下不起作用。但:
如果您使用西欧 windows 编码保存文档的副本,它将起作用。(见下面的评论)。
为此,您可以按“另存为”,然后在保存按钮(工具)的左侧有一个下拉菜单,它将为您提供一个对话框,您可以在其中更改编码。
该图像已从 technet 提取并始终保存网络.. 没有必要。
EOF 编辑:
这是我用过的函数,不幸的是不记得我从谁那里得到的,但它来自 vba 和经典 asp 的旧时代 将您的电子邮件单元格公式放入此函数中,它应该可以工作,因为所有字母都是 html 编码的。它的速度很慢,而且开销很大。但它会起作用。
Function HtmlEncode(ByVal inText As String) As String
Dim i As Integer
Dim sEnc As Integer
Dim repl As String
HtmlEncode = inText
For i = Len(HtmlEncode) To 1 Step -1
sEnc = Asc(Mid$(HtmlEncode, i, 1))
Select Case sEnc
Case 32
repl = " "
Case 34
repl = """
Case 38
repl = "&"
Case 60
repl = "<"
Case 62
repl = ">"
Case 32 To 127
'Numbers
Case Else
repl = "&#" & CStr(sEnc) & ";" 'Encode it all
End Select
If Len(repl) Then
HtmlEncode = Left$(HtmlEncode, i - 1) & repl & Mid$(HtmlEncode, i + 1)
repl = ""
End If
Next
End Function