opf / OpenProjectExcel

MIT License
56 stars 22 forks source link

Syntax Error of VBA script #48

Open Jeffrey9130 opened 2 years ago

Jeffrey9130 commented 2 years ago

Stop at "Function ConvertFromUnicodeJava(TextStr As String) As String" with "Compiling Error, Syntax Error".

Win11+VBA7.1

Eric-Guo commented 1 year ago

Should change as below, as VBA has unicode string-literal problem in some windows version like Chinese.

TextStr = Replace(TextStr, "\u00A1", ChrW(&HA1), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A2", ChrW(&HA2), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A3", ChrW(&HA3), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A4", ChrW(&HA4), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A5", ChrW(&HA5), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A6", ChrW(&HA6), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A7", ChrW(&HA7), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A8", ChrW(&HA8), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00A9", ChrW(&HA9), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00AA", ChrW(&HAA), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00AB", ChrW(&HAB), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00AC", ChrW(&HAC), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00AD", ChrW(&HAD), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00AE", ChrW(&HAE), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00AF", ChrW(&HAF), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B0", ChrW(&HB0), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B1", ChrW(&HB1), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B2", ChrW(&HB2), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B3", ChrW(&HB3), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B4", ChrW(&HB4), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B5", ChrW(&HB5), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B6", ChrW(&HB6), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B7", ChrW(&HB7), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B8", ChrW(&HB8), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00B9", ChrW(&HB9), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00BA", ChrW(&HBA), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00BB", ChrW(&HBB), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00BC", ChrW(&HBC), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00BD", ChrW(&HBD), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00BE", ChrW(&HBE), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00BF", ChrW(&HBF), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C0", ChrW(&HC0), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C1", ChrW(&HC1), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C2", ChrW(&HC2), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C3", ChrW(&HC3), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C4", ChrW(&HC4), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C5", ChrW(&HC5), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C6", ChrW(&HC6), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C7", ChrW(&HC7), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C8", ChrW(&HC8), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00C9", ChrW(&HC9), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00CA", ChrW(&HCA), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00CB", ChrW(&HCB), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00CC", ChrW(&HCC), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00CD", ChrW(&HCD), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00CE", ChrW(&HCE), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00CF", ChrW(&HCF), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D0", ChrW(&HD0), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D1", ChrW(&HD1), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D2", ChrW(&HD2), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D3", ChrW(&HD3), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D4", ChrW(&HD4), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D5", ChrW(&HD5), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D6", ChrW(&HD6), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D7", ChrW(&HD7), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D8", ChrW(&HD8), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00D9", ChrW(&HD9), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00DA", ChrW(&HDA), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00DB", ChrW(&HDB), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00DC", ChrW(&HDC), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00DD", ChrW(&HDD), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00DE", ChrW(&HDE), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00DF", ChrW(&HDF), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E0", ChrW(&HE0), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E1", ChrW(&HE1), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E2", ChrW(&HE2), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E3", ChrW(&HE3), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E4", ChrW(&HE4), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E5", ChrW(&HE5), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E6", ChrW(&HE6), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E7", ChrW(&HE7), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E8", ChrW(&HE8), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00E9", ChrW(&HE9), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00EA", ChrW(&HEA), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00EB", ChrW(&HEB), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00EC", ChrW(&HEC), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00ED", ChrW(&HED), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00EE", ChrW(&HEE), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00EF", ChrW(&HEF), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F0", ChrW(&HF0), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F1", ChrW(&HF1), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F2", ChrW(&HF2), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F3", ChrW(&HF3), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F4", ChrW(&HF4), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F5", ChrW(&HF5), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F6", ChrW(&HF6), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F7", ChrW(&HF7), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F8", ChrW(&HF8), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00F9", ChrW(&HF9), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00FA", ChrW(&HFA), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00FB", ChrW(&HFB), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00FC", ChrW(&HFC), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00FD", ChrW(&HFD), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00FE", ChrW(&HFE), , , vbBinaryCompare)
TextStr = Replace(TextStr, "\u00FF", ChrW(&HFF), , , vbBinaryCompare)