Excel精英培训网

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

[已解决]竟然会溢出?

[复制链接]
发表于 2012-9-24 22:44 | 显示全部楼层 |阅读模式
本帖最后由 silenthunter 于 2012-9-24 22:57 编辑

office 2007

变量数字都没超过20,怎么会溢出呢?尝试不定义数据类型,逐语句运行,居然自动设为整形。
  1. Sub b3()
  2. Dim item As Byte
  3. For item = 20 To 1 Step -1
  4. Range(item & ":" & item).Delete
  5. Next
  6. End Sub
复制代码
同样是这个程序,把步长设为正1,就不会溢出。这又是什么道理?
  1. Sub b2()
  2. Dim item As Byte
  3. For item = 1 To 20 Step 1
  4. Range(item & ":" & item).Delete
  5. Next
  6. End Sub
复制代码
最佳答案
2012-9-25 15:57
http://support.microsoft.com/kb/129709/zh-cn

在 Visual Basic for Windows 中 For 循环中的开始、 限制和步骤值所有强制为 For 循环计数器的类型。字节数据类型不能为负数,因为它不能有负的步长值。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-9-25 00:13 | 显示全部楼层
  1. Sub b4()
  2.     For i = 20 To 1 Step -1
  3.         Rows(i).Delete
  4.     Next i
  5. End Sub
复制代码
这样是不是简单些?
你的变量定义为整型就不会出现这情况了
回复

使用道具 举报

 楼主| 发表于 2012-9-25 00:18 | 显示全部楼层
本帖最后由 silenthunter 于 2012-9-25 00:23 编辑
fjmxwrs 发表于 2012-9-25 00:13
这样是不是简单些?
你的变量定义为整型就不会出现这情况了

你好,我想知道为什么只有20,byte都会溢出?不就是步长正负的差别而已。
回复

使用道具 举报

发表于 2012-9-25 07:31 | 显示全部楼层
本帖最后由 hwc2ycy 于 2012-9-25 07:36 编辑

byte类型用降序循环,好像是BUG,总会溢出。

回复

使用道具 举报

发表于 2012-9-25 08:53 | 显示全部楼层
可能是因为-1超出了byte的范围吧
回复

使用道具 举报

发表于 2012-9-25 09:03 | 显示全部楼层
先猜一个:
step的数据类型必须和item一致。
另一个溢出的例子:
  1. Sub cs_3()
  2.     Dim i As Integer
  3.     For i = -32768 To -32768 Step 33000
  4.     Next
  5. End Sub
复制代码
具体原因仍在探究中。。。。。
回复

使用道具 举报

发表于 2012-9-25 15:57 | 显示全部楼层    本楼为最佳答案   
http://support.microsoft.com/kb/129709/zh-cn

在 Visual Basic for Windows 中 For 循环中的开始、 限制和步骤值所有强制为 For 循环计数器的类型。字节数据类型不能为负数,因为它不能有负的步长值。
回复

使用道具 举报

 楼主| 发表于 2012-9-25 20:11 | 显示全部楼层
爱疯 发表于 2012-9-25 15:57
http://support.microsoft.com/kb/129709/zh-cn

在 Visual Basic for Windows 中 For 循环中的开始、 限 ...

请问这个帮助中心怎么用?你是怎么搜索到这个说明的?
回复

使用道具 举报

发表于 2012-9-25 20:17 | 显示全部楼层
silenthunter 发表于 2012-9-25 20:11
请问这个帮助中心怎么用?你是怎么搜索到这个说明的?

怎么用?
http://support.microsoft.com

怎么搜?
在页面最上面的搜索栏,搜"byte 溢出"

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 14:00 , Processed in 1.179204 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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