发布网友 发布时间:2022-05-05 19:56
共4个回答
热心网友 时间:2022-06-28 00:32
意思是:没有给数组分配空间。
造成的原因:引用了不存在的数组元素.
下标可能比下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。
声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:
Dim MyArray() As Integer
MyArray(8) = 234 ' 导致错误 9。
Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。
扩展资料:
VB语言特色:
制作应用程序安装盘等提供了友好的集成开发环境。
1、可视化的设计平台:
在使用传统的程序设计语言编程时,一般需要通过编写程序来设计应用程序的界面(如界面的外观和位置等),在设计过程中看不见界面的实际效果。而在Visual Basic 6.0中,采用面向对象程序设计方法(Object-Oriented Programming),把程序和数据封装起来作为一个对象,每个对象都是可视的。
开发人员在界面设计时,可以直接用Visual Basic 6.0的工具箱在屏幕上"画"出窗口、菜单、命令按键等不同类型的对象,并为每个对象设置属性。开发人员要做的仅仅是对要完成事件过程的对象进行编写代码,因而程序设计的效率可大大提高。
2、事件驱动的编程机制:
面向过程的程序是由一个主程序和若干个子程序及函数组成的。程序运行时总是先从主程序开始,由主程序调用子程序和函数,开发人员在编程时必须事先确定整个程序的执行顺序。
Visual Basic 6.0事件驱动的编程是针对用户触发某个对象的相关事件进行编码,每个事件都可以驱动一段程序的运行。开发人员只要编写响应用户动作的代码。这样的应用程序代码精简,比较容易编写与维护。
3、结构化的程序设计语言:
Visual Basic 6.0具有丰富的数据类型和众多的内部函数。其采用模块化和结构化程序设计语言,结构清晰,语法简单,容易学习。
4、强大的数据库功能:
Visual Basic 6.0利用数据控件可以访问Access、FoxPro等多种数据库系统,也可以访问Excel、Lotus等多种电子表格。
参考资料来源:百度百科-下标越界
参考资料来源:百度百科-Visual Basic
热心网友 时间:2022-06-28 00:32
下标越界是指只能在定义的范围内访问数组元素和集合成员。
一、产生下标越界的原因
1、下标可能比下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。
声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:
Dim MyArray() As Integer MyArray(8) = 234 ' 导致错误 9。
Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。
2、引用了不存在的集合成员。
试着使用 For Each...Next 结构代替指定元素下标。使用速写形式的下标,结果指定了错误的元素。
例如:
当在集合上使用 感叹号(!) 运算子时,叹号自动指定了一个键,集合中如果 keyname 表示一个错误键,错误就会产生。若要改进此错误,在集合对象中使用正确的键名称或索引。
二、VB语言的特点
1、VB 的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI 系统,但是又可以开发相当复杂的程序。VB 的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。
2、窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。
3、VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。
4、VB 的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。
5、VB 使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。
6、VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。
三、VB语言缺点
1、Visual Basic 语言具有不支持继承、无原生支持多线程、异常处理不完善等三项明显缺点,使其有所局限性(此些缺点皆已在 vb .net 获得改进)。
2、VB 5.0 和 VB 6.0 都是基于对象的编程语言,但是不包含继承特性。VB 中提供了特殊的类的功能,但是还是不能满足程序员的需求。
3、Visual Basic 对于多线程无原生支持,只能通过Windows API的调用实现,且极其的不稳定。因为在API创建的线程中,并没有自动初始化运行时库,导致部分的函数无法使用。
4、Visual Basic 中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。
扩展资料:
VB语言发展历程
1、1991年4月,微软公司推出了 Visual Basic 1.0Windows版本,这个连接编程语言和用户界面的进步被称为Tripod,最初的设计是由阿兰·库珀(Alan Cooper)完成的。在当时,它是第一个“可视”的编程软件。
2、1992年9月,Visual Basic 1.0 DOS版本发布。11月,由于Visual Basic 1.0的功能过于简单,微软推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量对语言的改进和扩充。
3、1993年,微软公司推出Visual Basic 3.0,分为标准版和专业版。其中包含一个数据引擎,可以直接读取Access数据库。增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。
4、2002年,微软将.NET Framework与 Visual Basic 结合而成为 Visual Basic .NET (vb .net),重新打造 VB,新增许多特性及语法。
5、2005年11月7日,Visual Basic 2005 (v8.0)问世,同时间推出Visual Basic 2005的免费简化版本Visual Basic 2005 Express Edition给Visual Basic初学者及学生使用。
6、2008年3月,微软宣布将不会再对非.NET版本的VB进行支持。
参考资料来源:百度百科-下标越界
参考资料来源:百度百科-Visual Basic
热心网友 时间:2022-06-28 00:33
只能在定义的范围内访问数组元素和集合成员。下标可能比下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。
以一个简单的一维数组为例:int a[10];这是一个整型的数组a,有10个元素:a[0]-a[9],因为正确的下标应该是从0开始,到9结束,与生活习惯中的1-10不一样,于是产生一个a[10]的错误,即数组下标越界。
扩展资料
下列的代码就会导致此错误:
Dim MyArray() As Integer
MyArray(8)=234'导致错误9。
Visual Basic并不会将没有指定范围的数组自动设为0–10。相反必须使用Dim或ReDim来指定数组中元素的数目。
引用了不存在的集合成员。
试着使用For Each...Next结构代替指定元素下标。
使用速写形式的下标,结果指定了错误的元素。
例如,当在集合上使用!运算子时,!自动指定了一个键。例如object!keyname.value和object.item(keyname).value是一样的。在此例中,集合中如果keyname表示一个错误键,错误就会产生。若要改进此错误,在集合对象中使用正确的键名称或索引。
详细信息,可选取有问题的项目,并按下F1键。
参考资料来源:百度百科-下标越界
参考资料来源:百度百科-数组下标越界
热心网友 时间:2022-06-28 00:33
是数组越界 具体就是使用了不存在的数组下标 也就是说你定义了a(9) 那么你最多只能使用0-9这10个数作为a(?)一旦超过9 就出现这样的错误 你可以在程序中判断这个你使用的下标是否大于定义的数比如a(i) if i>ubound(a) then msgbox "i值大于数组a的定义,请检查"