Excel精英培训网

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

[已解决]求助:溢出解决办法

[复制链接]
发表于 2011-12-23 17:20 | 显示全部楼层 |阅读模式
模块2中的 设置计算时候溢出
初学 写的乱请见谅 线路.rar (34.5 KB, 下载次数: 16)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-12-23 17:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yuhe0008 于 2011-12-23 17:38 编辑

Sub 曲线程序1()

AAA:

Dim l As Double '把Dim l As Integer改一下试试
Const r As Integer = 1000                   '常量参数声明
Const ls As Byte = 180
Const xzh As Long = 283161.872
Const yzh As Long = 494812.376
Const A As Integer = 138.0510278
'For k = 1 To W
'W = Sheets(5).Range("a10000").End(xlUp).Row - 1
If Sheets(5).Range("c10000").End(xlUp).Offset(1, -2) < 231717.356 Then GoTo LS1
If Sheets(5).Range("c10000").End(xlUp).Offset(1, -2) < 232354.663 Then GoTo LS2
If Sheets(5).Range("c10000").End(xlUp).Offset(1, -2) < 232534.663 Then GoTo LS3

'第1缓和段
LS1:
l = Sheets(5).Range("c10000").End(xlUp).Offset(1, -2) - 231537.356  ‘既然定义了I为integet,且不论你后面减了个带小数的数,INTEGER本身范围才 -32,768 到 32,767 之间
xk1 = l - l ^ 5 / (40 * r ^ 2 * ls ^ 2) + l ^ 9 / (3456 * r ^ 4 * ls ^ 4) - l ^ 13 / (599040 * r ^ 6 * ls ^ 6) + l ^ 17 / (17542600 * r ^ 8 * ls ^ 8)    ' 第1缓和段支距计算
yk1 = l ^ 3 / (6 * 1800 * l) - l ^ 7 / (336 * r ^ 3 * ls ^ 3) + l ^ 11 / (42240 * r ^ 5 * ls ^ 5)
x = xzh - yk1 * Sin(Application.WorksheetFunction.Radians(A)) + xk1 * Cos(Application.WorksheetFunction.Radians(A))    ' 第1缓和段计算
y = yzh + yk1 * Cos(Application.WorksheetFunction.Radians(A)) + xk1 * Sin(Application.WorksheetFunction.Radians(A))
Sheets(5).Range("c10000").End(xlUp).Offset(1, 0) = x
Sheets(5).Range("c10000").End(xlUp).Offset(0, 1) = y
回复

使用道具 举报

 楼主| 发表于 2011-12-23 18:13 | 显示全部楼层
谢谢,确实如此
我理解 integer 可以带小数的,只是一个正负区间
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 04:46 , Processed in 0.277219 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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