Issue
Khmer unicode character string is different from other unicode character, we can’t write it on VBA editor of Excel or MS Access.
How to declare a variable and assign Khmer unicode string?
Answer
Of course refer to the answer in http://stackoverflow.com/questions/7269399/declaring-a-unicode-string-in-vba-in-excel help us to answer to Khmer unicode issue in Excel VBA as well.
In VBA, to declare a Khmer unicode, you can’t write directly to it, so you need to translate each character into its hexadecimal code and use function: ChrW
I used tool: http://rishida.net/tools/conversion/ to translate Khmer unicode string to hexa and then I added to each hexadecimal to use in VBA by &H.
Example of writing: ល.រ into VBA variable:
Dim myStr As String myStr = ChrW(&H179B) & "." & ChrW(&H179A)
So that the comparison can make the same as other string do.
Here is the complete sample code:
Attribute VB_Name = "Module1" Sub TestUnicode() Dim num As Integer Dim str As String num = Range("A1") str = Range("B1") ' assign Khmer unicode string to a cell in excel Range("D1").Value = str Dim total As Integer total = 14 Dim init As Integer Dim myStr As String ' How you write: ល.រ in Khmer unicode ' conver character you want to compare and use function ChrW to convert each character ' you can use tool: http://rishida.net/tools/conversion/ ' use Hexadecimal code point and adding: &H in front of the unicode number myStr = ChrW(&H179B) & "." & ChrW(&H179A) 'comparing Khmer unicode string between cell For init = 1 To total If Range("B" & init).Value = Range("D" & init).Value Then Range("C" & init).Value = 1 Else Range("C" & init).Value = 0 End If Next init If Range("B17").Value = myStr Then MsgBox "Unicode characters match" Else MsgBox "Character not matchx" End If End Sub
This would apply the same to other VBA platform code: MS Word, MS Access etc.
One reply on “Declare and compare a variable with Khmer unicode string in VBA, excel”
Answer in the description. Comment if any than above.