3

如果写如下代码会不会出错

Sub Something()
 Dim i As integer
 Dim xRange As Range
 Dim yRange As Range

 Set xRange= Range("x_table")
 Set yRange= Range("y_table")

 For i = 1 To xRange.Columns.Count
    xRange.Columns(i) = Application.Sum(y_table.Columns(i))
 Next i
End Sub

没有明确声明每个变量?如下所示;

Sub Something()
 Set xRange= Range("x_table")
 Set yRange= Range("y_table")

 For i = 1 To xRange.Columns.Count
    xRange.Columns(i) = Application.Sum(y_table.Columns(i))
 Next i
End Sub
4

2 回答 2

14

如果 Option Explicit 没有打开,你可以这样做,但我不推荐它,因为你依赖框架来猜测它正在处理的变量的类型,这可能会导致意想不到的结果。

于 2010-11-17T14:52:59.623 回答
7

它工作正常,直到它没有。

您的示例非常简单,但是完全有可能提出导致问题的情况。

最好声明所有内容,以免您在运行时遇到模棱两可的风险。

我也偏爱 MikeD 关于自动完成的评论。

于 2010-11-17T15:33:25.027 回答