我正在嘗試創建一個將希臘字符轉換爲拉丁文的替代方法()。在excel中聲明一個Unicode格式的字符串字符串
的問題是,宣稱
Dim Source As String
Source = "αβγδεζηικλμνξοπρστθφω"
源之後被解釋爲「áâãäåæçéêëìíîïðñóôõöù」
有沒有在聲明級別的任何方式使用Unicode?
我正在嘗試創建一個將希臘字符轉換爲拉丁文的替代方法()。在excel中聲明一個Unicode格式的字符串字符串
的問題是,宣稱
Dim Source As String
Source = "αβγδεζηικλμνξοπρστθφω"
源之後被解釋爲「áâãäåæçéêëìíîïðñóôõöù」
有沒有在聲明級別的任何方式使用Unicode?
您可以嘗試StrConv
:
StrConv("αβγδεζηικλμνξοπρστθφω", vbUnicode)
來源: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
您可以創建一個數組來查找字符。
來源: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
。
注意,Visual Basic編輯器不顯示統一,但it does support manipulating Unicode strings:
Dim strValue As String
strValue = Range("A1").Value
Range("B1").Value = Mid(strValue, 3)
Range("C1").Value = StrReverse(strValue)
如果A1包含希臘字符,B1和C1將運行此代碼後,也包含希臘字符。
您只是無法在立即窗口或MsgBox中正確查看值。
如前所述,VBA不支持Unicode字符串,但你不能寫你的代碼中的Unicode字符串,因爲VBA編輯器只允許VBA文件,以對8位代碼頁Windows-1252
進行編碼。
但是,您可以轉換成Unicode字符串的二進制相當於您希望:
str = StrConv("±²³´µ¶·¹º»¼½¾¿ÀÁÃĸÆÉ", vbFromUnicode)
'str value is now "αβγδεζηικλμνξοπρστθφω"
用記事本將字符串轉換:複製粘貼unicode字符串,將文件保存爲Unicode(UTF-不8),並將其打開爲ASCII(實際上是Windows-1252),然後將其複製粘貼到VBA編輯器中,但不包含前兩個字符(ÿþ),即BOM標記
「將希臘字符轉換爲拉丁文」這是什麼意思? α變成a,β變成b,γ變成g等。如果是這樣,ζ,η,ξ應該轉換成什麼? –
我有我自己的目標字符串,我有轉換。它基本上,沒關係.. – Stavros
可能重複[如何在Visual Basic編輯器中鍵入貨幣符號](http://stackoverflow.com/questions/24384952/how-to-type-currency-symbols-in-visual - 基本編輯器) – GSerg