Sta*_*ros 15 unicode excel encoding vba excel-vba
我正在尝试创建一个替换(),将希腊字符转换为拉丁语.
问题是在宣布之后
Dim Source As String
Source = "?????????????????????"
Run Code Online (Sandbox Code Playgroud)
来源被解释为"áâãäåæçéêëìíîïðñóôõöù"
是否有任何方式在声明级别使用unicode?
JMa*_*Max 13
你可以尝试StrConv
:
StrConv("?????????????????????", vbUnicode)
Run Code Online (Sandbox Code Playgroud)
资料来源:http://www.techonthenet.com/excel/formulas/strconv.php
[编辑]另一个解决方案:
通过以下过程,您可以获得每个希腊字符(小写和大写):
Sub x()
Dim i As Long
For i = 913 To 969
With Cells(i - 912, 1)
.Formula = "=dec2hex(" & i & ")"
.Offset(, 1).Value = ChrW$(i)
End With
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
您可以创建一个数组来查找char.
资料来源:http://www.excelforum.com/excel-programming/636544-adding-greek-letters.html
[编辑2]这是一个构建你想要的字符串的子:
Sub greekAlpha()
Dim sAlpha As String
Dim lLetter As Long
For lLetter = &H3B1 To &H3C9
sAlpha = sAlpha & ChrW(lLetter)
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
z̫͋*_*z̫͋ 10
如前所述,VBA确实支持unicode字符串,但是您无法在代码中编写unicode字符串,因为VBA编辑器只允许在8位代码页中编码VBA文件Windows-1252
.
但是,您可以转换您希望拥有的unicode字符串的二进制等效项:
str = StrConv("±²³´µ¶·¹º»¼½¾¿ÀÁÃĸÆÉ", vbFromUnicode)
'str value is now "?????????????????????"
Run Code Online (Sandbox Code Playgroud)
使用记事本转换字符串:复制粘贴unicode字符串,将文件保存为unicode(不是utf-8)并将其打开为ASCII(实际上是Windows-1252),然后将其复制粘贴到VBA编辑器中前两个字符(ÿþ),即BOM标记
你说你的来源被解释为"áâãäåæçéêëìíîïðñóôõöù".
请注意,Visual Basic编辑器不显示 Unicode,但它支持操作Unicode字符串:
Dim strValue As String
strValue = Range("A1").Value
Range("B1").Value = Mid(strValue, 3)
Range("C1").Value = StrReverse(strValue)
Run Code Online (Sandbox Code Playgroud)
如果A1包含希腊字符,则运行此代码后,B1和C1也将包含希腊字符.
您无法在立即窗口或MsgBox中正确查看值.
归档时间: |
|
查看次数: |
48752 次 |
最近记录: |