首页 > 解决方案 > 如何在 VBA 中使用 As 声明具有指定类型的多个变量?

问题描述

根据Microsoft 的此文档,可以使用以下代码来确保;

a、b、c都是Single;x 和 y 都是 Double

Dim a, b, c As Single, x, y As Double, i As Integer  
> a, b, and c are all Single; x and y are both Double  

这背后的逻辑如下

您可以通过为您声明的每个变量使用单独的As子句来为不同的变量指定不同的数据类型。As每个变量都采用在其变量名部分之后遇到的第一个子句中指定的数据类型。

但是,当我检查调试器或MsgBox VarType(a) 输出时,情况并非如此。

在此处输入图像描述

如您所见,它似乎As仅适用于其自身之前的变量,即. c,yi. 所有其他都是 Variant/Empty 并VarType返回 0。

这只是文档有误,还是我遗漏了一些明显的东西?

Microsoft Visual Basic 应用程序 7.1.1056 Excel 2016 (Windows 10)

标签: excelvbadeclarationvariable-declaration

解决方案


您链接到的文档没有错,但它是为 VB.NET 而不是 VBA 编写的。

正如您所观察到的,在 VBA 中,任何没有紧跟其后的变量声明都As <type>将是Variant.

因此,您需要编写:

Dim a As Single, b As Single, c As Single, x As Double, y As Double, i As Integer

推荐阅读