在VBA StrConv中使用Unicode

我有一个Excel文件和一个用户表单,用户可以input学生的详细信息,表单将检查重复,然后将信息添加到表的最后一行。 我想通过使用这个代码使表单大写每个名字的第一个字母来进一步改进:

Me.Surname.Value = StrConv(Me.Surname.Value, vbProperCase) 

Me.Surname.Value是表单的input,主要是Trần,Nguyễn,Thảo等越南语。但是,在经过StrConv之后,它们变成了类似Tr?n,Nguy?n,Th?o的东西。 我读了一些build议,并将我的语言环境更改为越南语,但问题仍然存在。

你有什么build议来解决这个问题吗? 我正在考虑将input转换为hex值,然后使用ChrW()写下来,但我找不到一种方法来做到这一点。

我玩了一下这个,罪魁祸首似乎是StrConv 。 它适用于我,而不是使用StrConv我明确地设置适当的情况:

 Surname.Text = UCase(Left(Surname.Text, 1)) & Mid(Surname.Text, 2) 

甚至更精确:

 Surname.Text = UCase(Left(Surname.Text, 1)) & Mid(LCase(Surname.Text), 2)