|
本帖最后由 hehex 于 2012-12-20 15:06 编辑
slsl2009cn 发表于 2012-12-20 11:06
谢谢你的解释,我明白了。知道纠结在哪里了。我开始不明白的是range后面引用的是字符串,应该用双引号扩起 ...
Range("A" &i &":A" &j).Value
= Range("Ai" &":A" &j).Value
= Range("Ai" &":Aj").Value
=Range("Ai" &":Aj").Value
=Range("Ai:Aj").Value
看以上分解式,你的理解是不对的。i,j 是变量,任何时候都是变量,所以它们不能被"" 引起来否则就错了。
= Range("Ai" &":Aj").Value 一定是错的,因为它是Ai 列到 Aj 列。
比如i=1
Range("A"&i)=Range("A1")
不要纠结于外面的Range 我们先看里面, "A" 是字符串这没错,那要想表示字符串"A1",常量的方法是"A1",
但是如果要用"A" 和变量i 来表示,就不能是字符串"Ai",因为"Ai"不等于"A1"。
那么应该怎样表示呢: 应该是 "A" & i
这里就要讲到& 的作用了,i 是数字型的变量,里面装的是数字1,& 号会把i 取出来转换成字符串型,然后和
前面的部分连接起来,"A"&i 就成了"A1"。
& 有两个作用,第一是连接,把前后2个字符串连起来。
第二如果& 后面是变量,而且如果变量类型不是字符串型,那么& 会把该变量的值先转换成字符串,然后再和前面连接起来。
任何时候都不能把变量""引起来,那样变量就变成了变量名的字符串,就没有访问到变量里的值了。
所以我在上一篇帖子让你去看VBA 的字符串处理和& 符号的知识。就如我在上面所说,你如果理解了,应该自己能找出上列的分解式的错误了。
最后做个伪代码的练习看看是否是真理解了
i=1
j=10
Range("A" & i & ": A" & j)
请告诉我这个区域是什么
|
|