Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1911|回复: 6

[已解决]为什么这个代码在立即窗口的结果是累积统计的?

[复制链接]
发表于 2012-2-23 12:08 | 显示全部楼层 |阅读模式
Sub d()
Dim x As Integer, st As String
For x = 1 To 10
    st = st & Cells(x, 1)
    Debug.Print "第" & x & "次运行结果:" & st
Next x
End Sub
   
第1次运行结果:1
第2次运行结果:12
第3次运行结果:123
第4次运行结果:1234
第5次运行结果:12345
第6次运行结果:123456
第7次运行结果:1234567
第8次运行结果:12345678
第9次运行结果:123456789
第10次运行结果:12345678910
为什么不是   第2次运行结果:2
第3次运行结果:3
以此类推
?????????????
最佳答案
2012-2-23 18:59
从你的运行结果上看,单元格A1:A10分别是1-10的序列,而你定义的ST变量是STRING(字符串型)
st = st & Cells(x, 1) 这个语句的意思是在原ST的值后依次添加单元格A1:A10的值,所以循环的第一次的结果是"1",第2次是"12"依此类推,如果想达到你想要的结果,那么A1:A10的值都是1,
Sub d()
Dim x As Integer, st As Integer
For x = 1 To 10
    st = st + Cells(x, 1)
    Debug.Print "第" & x & "次运行结果:" & st
Next x
End Sub
你自己测试一下吧。
发表于 2012-2-23 12:11 | 显示全部楼层
  1. Sub d()
  2. Dim x As Integer, st As String
  3. For x = 1 To 10
  4.     st =Cells(x, 1)
  5.     Debug.Print "第" & x & "次运行结果:" & st
  6. Next x
  7. End Sub
复制代码
改成这样
回复

使用道具 举报

 楼主| 发表于 2012-2-23 17:42 | 显示全部楼层
zjcat35 发表于 2012-2-23 12:11
改成这样

您 没有看清问题吧?亲
回复

使用道具 举报

发表于 2012-2-23 18:59 | 显示全部楼层    本楼为最佳答案   
从你的运行结果上看,单元格A1:A10分别是1-10的序列,而你定义的ST变量是STRING(字符串型)
st = st & Cells(x, 1) 这个语句的意思是在原ST的值后依次添加单元格A1:A10的值,所以循环的第一次的结果是"1",第2次是"12"依此类推,如果想达到你想要的结果,那么A1:A10的值都是1,
Sub d()
Dim x As Integer, st As Integer
For x = 1 To 10
    st = st + Cells(x, 1)
    Debug.Print "第" & x & "次运行结果:" & st
Next x
End Sub
你自己测试一下吧。
回复

使用道具 举报

发表于 2012-2-23 18:34 | 显示全部楼层
二楼并没有说错啊。楼主如果是想学VBA,我觉得你可能找错了方法。虽说学VBA未必要循序渐进(我自己就没有循序渐进),但你要想通过看别人的代码来学习,你自己至少得有点基础。就你这里的例子,显然你都不知道 & 是干什么的。
建议先去看一下基础的知识,比如变量常量的概念、类型及声明、运算符及其优先级、数组概念等。
回复

使用道具 举报

 楼主| 发表于 2012-2-23 21:41 | 显示全部楼层
表里如意 发表于 2012-2-23 18:34
二楼并没有说错啊。楼主如果是想学VBA,我觉得你可能找错了方法。虽说学VBA未必要循序渐进(我自己就没有循 ...

感谢啊,我反应慢,还是循序渐进吧
回复

使用道具 举报

 楼主| 发表于 2012-2-23 21:45 | 显示全部楼层
liuguansky 发表于 2012-2-23 18:59
从你的运行结果上看,单元格A1:A10分别是1-10的序列,而你定义的ST变量是STRING(字符串型)
st = st & C ...

st = st + Cells(x, 1)
这句我测试的不行啊,别的可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 01:39 , Processed in 0.228672 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表