Dim myChar As Char
抛出编译错误: “用户定义的类型未定义”
我应该包含哪些参考来使用Char类型?
答案 0 :(得分:6)
Char
类型,您应该使用String
代替。
Dim myChar As String
请注意,VBA与VB.NET不同。在VB.NET中,您可以使用Char
。
编辑:根据MichałKrzych的建议,我会使用固定长度的字符串来达到这个目的。
Dim myChar As String * 1
以下摘自"VBA Developer's Handbook" by Ken Getz and Mike Gilbert:
“动态字符串需要从VBA获得更多的处理工作量,因此使用起来要慢一些。” ... “当一次使用单个角色时,使用它是有意义的 声明包含单个字符的固定长度字符串。因为 你知道你在字符串中只有一个字符, 你永远不需要削减多余的空间。你得到了一个好处 固定长度的字符串,没有额外的开销。“
有一点需要注意的是,函数和子程序中不允许使用固定的字符串表示法;
不允许使用Sub foo(char as string * 1)
......
End Sub
所以你要么需要使用;
Sub foo(char as string)'这将允许任何字符串传递
或
Sub foo(char as byte)'字符串需要转换为工作
使用字节时要注意的一点是没有标准 字节是否是无符号的。 VBA使用无符号字节 在这种情况下很方便。
答案 1 :(得分:3)
我认为这取决于你打算如何使用它:
Sub Test()
Dim strA As String, strB As Byte, strC As Integer, strD As Long
strA = "A"
strB = 65
strC = 75
strD = 90
Debug.Print Asc(strA) '65
Debug.Print Chr(strB) 'A
Debug.Print Chr(strC) 'K
Debug.Print Chr(strD) 'Z
End Sub