Char类型未定义

时间:2015-02-20 07:32:01

标签: vba excel-vba excel-2013 excel

Dim myChar As Char

抛出编译错误: “用户定义的类型未定义”

我应该包含哪些参考来使用Char类型?

2 个答案:

答案 0 :(得分:6)

VBA中不存在

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