下标越界(求助)

gogold 2007-04-04 11:31:04
Option Explicit
Dim a(3) As Single '边长
Dim b(4) As Single

Private Sub Command1_Click(Index As Integer)
Dim s As Single
Dim a() As Single
Select Case Index
Case 0 '计算
a(3) = (Sqr((2 * a(0) * a(1)) / a(2)))
b(4) = ((6 * a(0)) / 2)
Text1(3).Text = Trim(a(3))
Text1(4).Text = Trim(b(4))

Case 1 '清除
For s = 0 To 6
Text1(s).Text = "": a(s) = 0
Next
Case 2 '退出
End
End Select
End Sub

Private Sub Text1_Change(Index As Integer)
If Val(Text1(Index).Text) <= 0 Then Text1(Index) = "": Exit Sub '禁止输入非正数
a(Index) = Val(Text1(Index).Text) '赋值三边
End Sub
...全文
203 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
diclover 2007-04-04
  • 打赏
  • 举报
回复
这属于覆盖的问题,当你定义了一个和全局变量同名的局部变量时,局部变量将覆盖全局变量.
所以你的a(3) = (Sqr((2 * a(0) * a(1)) / a(2)))中的a(0),a(1),a(2),a(3)都会越界改成这样:
Option Explicit
Dim a(3) As Single '边长
Dim b(4) As Single

Private Sub Command1_Click(Index As Integer)
Dim s As Single
Dim a() As Single

Select Case Index
Case 0 '计算
Redim a(3) as single
a(3) = (Sqr((2 * a(0) * a(1)) / a(2)))
b(4) = ((6 * a(0)) / 2)
Text1(3).Text = Trim(a(3))
Text1(4).Text = Trim(b(4))

Case 1 '清除
For s = 0 To 6
Redim a(s) as Single
Text1(s).Text = "": a(s) = 0
Next
Case 2 '退出
End
End Select
End Sub

Private Sub Text1_Change(Index As Integer)
If Val(Text1(Index).Text) <= 0 Then Text1(Index) = "": Exit Sub '禁止输入非正数
a(Index) = Val(Text1(Index).Text) '赋值三边
End Sub

gogold 2007-04-04
  • 打赏
  • 举报
回复
其实这是一个求解三角形面积的代码,我把他改成了按照批量订购模型的公式来做,只不过是改公式呀
wanbotang 2007-04-04
  • 打赏
  • 举报
回复
那里出现下标越界啊,你那段代码做什么用的,没看明白。
gogold 2007-04-04
  • 打赏
  • 举报
回复
呵呵,谢谢呀,我太不细心了,终于按照你的做法做到了。十分感谢ProgramFanA(零零发)
gogold 2007-04-04
  • 打赏
  • 举报
回复
改了你这种,但还是出现了下标越界呀
wanbotang 2007-04-04
  • 打赏
  • 举报
回复
而你在时间过程中又定义:Dim a() As Single为动态数组,这里和上面那个a(3)有冲突。
要么你就用ReDim语句。
superauu 2007-04-04
  • 打赏
  • 举报
回复
什么地方出错了啊
wanbotang 2007-04-04
  • 打赏
  • 举报
回复
问题在此处吧:
For s = 0 To 6
Text1(s).Text = "": a(s) = 0
Next
你的定义:Dim a(3) As Single
a()定义只有3个元素,而你有7个文本框,肯定会出现下标越界。
改成这样应该行:
For s = 0 To 6
Text1(s).Text = ""
If s<2 then a(s) = 0
Next

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧