|
楼主 |
发表于 2009-10-10 11:51
|
显示全部楼层
回复 670楼 阿龙168 的帖子
1、Dim Lsum As Long, i As Long(在这里Lsum和i只是一个名字而已,不一定非得用这两个词可以用其他的如AA,BB之类的表示,这样理解对吗?)————是的,变量的名字可以根据自己的需要使用不同的名字,只要起的变量名称符号命名规则,且不是VBA已有的关键字,比如函数名称等即可。
2、 Lsum = Lsum(这个Lsum是不是可以理解成原值是0的意思,即第一次循环的结果是0+1=1,这样对吗?) + i
Next——————Lsum是变量名,这是在对Lsum重新赋值。Lsum的值等于原来的值加上1,第一次循环的时候是0+1,第二次的时候是1+1,第三次的时候是2+1,依次类推,直到循环结束。
3、 Dim arr(1 To 100) As Integer(arr也只是一个名字而已,数组名称不一定非得用arr表示 对吧?)————是的,数组也是变量的一种,既然变量可以用不同的名字,数组同样可以。
4、- Sub ggsmart()
- Dim arr(1 To 100) As Integer '声明数组名称及数据类型
- For i = 1 To 100 '循环,为数组的元素赋值
- arr(i) = i
- Next
- End Sub
复制代码
单单就上面这段代码按F5后是没看到什么结果显示出来的,可否解释一下为什么?————这个程序只是给数组arr赋值,并没有对其进行其他任何可视化的操作,如果要显示,需要加上显示的语句。
5、
- Sub ggsmart()
- Dim arr(1 To 100) As Integer '声明数组名称及数据类型
- For i = 1 To 100 '循环,为数组的元素赋值
- arr(i) = i
- Next
- [a1].Resize(100, 1) = arr
- End Sub
复制代码
运行后结果是A1到A100的单元格都是1,这里我就不明白了, arr不是表示1到100的意思吗?那运行后A1到A100的单元格不应该是1,2,3,4,......100的意思吗?而怎么A1到A100都是1呢?
如果要执行A1至A100的单元格依次为1,2,3......100该怎么修改?——————因为arr是一维数组,而[a1].resize(100,1) 是一A1:A100单元格,是纵向的。一维数组写入单元格时单元格必须是水平的方向。所以你会在每个单元格都看到1。代码改成这样即可:
- [a1].Resize(100, 1) = WorksheetFunction.Transpose(arr)
复制代码
关于这个问题,我在前面数组的贴子里也讲到了,建议回去看一看(http://club.excelhome.net/viewthread.php?tid=470603&page=27#pid3123923)。
这是前面的内容截图:
|
|