类型不匹配(错误 13)

Visual Basic 能够转换和强制许多值,以完成早期版本中不可完成的数据类型分配。

但是,此错误仍可能发生并具有以下原因和解决方案:

  • 原因:变量属性 不是正确类型。 For example, a variable that requires an integer value can't accept a string value unless the whole string can be recognized as an integer.

解决方案: 尝试仅在兼容的 数据类型 之间进行分配。 例如,“整数”始终只可分配给“Long”,“Single”始终可分配给“Double”,而任何类型(用户定义类型除外)都可分配给“变量”

  • 原因: 一个对象传递给预期单个属性或值的过程

解决方案: 传递合适的单个属性或调用适合该对象的方法

解决方案: 指定可显示的表达式。

  • 原因: 您尝试通过具有 错误 子类型(10,vbError)的 变量 值混合传统的基本错误处理,例如:

      Error CVErr(n) 
    

Solution: To regenerate an error, you must map it to an intrinsic Visual Basic or a user-defined error, and then generate that error.

  • Cause: A CVErr value can't be converted to Date. For example:

      MyVar = CDate(CVErr(9)) 
    

Solution: Use a Select Case statement or some similar construct to map the return of CVErr to such a value.

  • 原因:运行 时,此错误通常指示表达式中使用变量 具有错误的子类型,或者 Print # 语句中出现了包含 数组变量

Solution: To print arrays, create a loop that displays each element individually.

有关其他信息,选择有问题的项并按 F1(在 Windows 中)或 HELP(在 Macintosh 上)。

注意

有兴趣开发跨多个平台扩展 Office 体验的解决方案吗? 查看新的 Office 外接程序模型。 与VSTO外接程序和解决方案相比,Office外接程序占用的空间较小,您可以使用几乎任何Web编程技术(例如HTML5,JavaScript,CSS3和XML)来构建它们。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。