Kou*_*ura 2 excel vba declaration variable-declaration
根据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
Run Code Online (Sandbox Code Playgroud)
其背后的逻辑如下
通过
As为声明的每个变量使用单独的子句,可以为不同的变量指定不同的数据类型。每个变量采用在As变量名部分之后遇到的第一个子句中指定的数据类型。
但是,当我检查调试器或MsgBox VarType(a) 输出时,情况并非如此。
正如你所看到的,似乎As只是工作中的变量本身前右,即,c,y和i。所有其他均为Variant / Empty,并VarType返回0。
这仅仅是文档有误,还是我遗漏了一些明显的东西?
适用于应用程序7.1.1056 Excel 2016的Microsoft Visual Basic(Windows 10)
在 VBA 中,当您声明
Dim a, b, c As Single
Run Code Online (Sandbox Code Playgroud)
它所做的相当于:
Dim a As Variant, b As Variant, c As Single
Run Code Online (Sandbox Code Playgroud)
我相信最佳实践是始终在单独的行中声明变量。它可以防止此错误,并且还可以更快地扫描代码。所以代码看起来像这样:
Dim a As Single
Dim b As Single
Dim c As Single
Run Code Online (Sandbox Code Playgroud)
您链接到的文档没有错,但是是为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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |