首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义字符类型

未定义字符类型
EN

Stack Overflow用户
提问于 2015-02-20 15:32:01
回答 2查看 10K关注 0票数 6
代码语言:javascript
复制
Dim myChar As Char

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

要使用Char类型,我应该包含什么引用?

EN

回答 2

Stack Overflow用户

发布于 2015-02-20 16:17:47

VBA中不存在Char类型,应改用String

代码语言:javascript
复制
Dim myChar As String

注意,VBA和VB.NET是不一样的,在VB.NET中,你可以使用Char

编辑:遵循MichałKrzych的建议,我将使用固定长度的字符串来实现此特定目的。

代码语言:javascript
复制
Dim myChar As String * 1

以下是"VBA Developer's Handbook" by Ken Getz and Mike Gilbert的摘录:

“动态字符串需要更多的处理工作,因此,使用起来有点慢。”...“在一次处理单个字符时,使用声明为包含单个字符的固定长度字符串是有意义的。因为您知道字符串中始终只有一个字符,所以您永远不需要裁剪多余的空格。您可以在不增加额外开销的情况下获得固定长度字符串的好处。”

需要注意的是,函数和子例程中不允许使用固定的字符串表示法;

不允许使用Sub foo (char as string *1)‘

..。

结束子对象

所以你要么需要使用;

Sub foo (char as string)‘这将允许任何字符串通过

Sub foo (char as byte)‘字符串需要转换才能工作

使用字节时需要注意的一件事是,字节是否为无符号没有标准。VBA使用无符号字节,这在这种情况下很方便。

票数 6
EN

Stack Overflow用户

发布于 2015-02-20 16:00:48

我认为这取决于你打算如何使用它:

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28623732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档