在没装VB的电脑上发生错误(运行时错误'9',下标越界)

yeti1234 2007-11-23 02:33:13
我的程序在安装了VB的电脑上好用,可在另一台每装VB的电脑上面安装好后,一运行就显示
"运行时错误'9' Subscript out of range",怎么回事呢.

所有的组件都注册了.
我程序里面用了SSTab,Adodc,DataGrid. 还定义了几个数组,可都定义了啊,也没发现越界.
我是菜鸟,实在是不懂啊.请各位高手指点,不胜感激.
...全文
643 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeti1234 2007-11-26
  • 打赏
  • 举报
回复
呵呵,解决了,就是VB自带的组件问题,后来我发现一个软件,用它可以找到程序依赖的所有组件并编译到一起,推荐给大家,VB-PowerWrap 汉化版,网上就有下载
powerwy 2007-11-26
  • 打赏
  • 举报
回复
这说明你的电脑还有没有注册完的组件,可能就是VB的自带文件!
HtSoft 2007-11-26
  • 打赏
  • 举报
回复
数组越界
程序的问题吧

仔细检查检查代码
cangwu_lee 2007-11-24
  • 打赏
  • 举报
回复
應該是數據造成的吧。
檢查檢查數據吧
swan123 2007-11-24
  • 打赏
  • 举报
回复
很清楚啊 装上VB就能用,没装的就不能用,那就是你程序中有的东西是VB中提供的,在没装的机子上没有
shiqiren 2007-11-24
  • 打赏
  • 举报
回复
嗯,同意上楼.
你可以试着将代码用VB自带的工具打包成安装程序,在操作中你会看到你的程序所需的动态链接库,如果你想放心使用,那就全部都选上,这样就可以保证你的程序的兼容性了!!
yeti1234 2007-11-23
  • 打赏
  • 举报
回复
还是没解决,请大家帮助啊!!!
yeti1234 2007-11-23
  • 打赏
  • 举报
回复
感谢二位朋友的帮助,我用多台电脑测试了,不是电脑的问题,另外我把所需要的组件一一都注册了,一定是我程序的问题,可有一点我就不懂,为什么只要一安装上VB就马上好用了,具体我也不知道是那个环节出问题了,我再查查每一个数组吧。
fyming 2007-11-23
  • 打赏
  • 举报
回复
检查一下数组,对应的语句都中断一下,看看是在哪句出错,再做相应处理。
zmhmwf 2007-11-23
  • 打赏
  • 举报
回复
1)換另一台沒有vb的電腦 看是否有錯誤(如沒有,是機器系統有問題)
2)在自己機上打包軟件包,重新安轉看是否有錯誤(如沒有,是有部分控件沒有注冊好)
3)另一台電腦安轉vb看是否有問題(如有,自己程序有問題,慢慢改!)
呵呵!

4.13.0.130¶ 修改过滤器的默认配置,去掉了 encoding="gb2312" 4.13.0.129¶ 补充翻译了一条漏掉的快捷菜单项"显示搜索对话框(D)" 4.13.0.128¶ 增加了对英文的支持 4.12.0.127¶ 更新了热键控件,重新编译插件 4.11.0.126¶ 为了避免安装路径的差异问题,修改了make.bat,从注册表中提取VB6的路径 将热键设定及响应的功能提取到一个单独的HotkeyControl?项目中 引用新HotkeyControl?控件,并在本地添加一个代理类HotkeyProxy? 补充了类注释和模块注释 调整了检查版本的方式,增加对以何种方式检查的判断,在手动检查更新时忽略灵敏度设置 4.10.0.125¶ 增加自动升级灵敏度的设定 修改了没有激活工程时进行范围是当前工程的搜索提示错误的问题 4.9.0.124¶ 增加ICondInfo接口,此接口定义了需要使用的搜索条件,全局设定GlobalSetting?和条件快照ConditionSnap?都实现了该接口,此接口在TaskMgr?中用到,代替原先的大量Property Get语句 在搜索范围是当前工程的时候显示工程名称 修改了搜索范围是选定区域,且区域中包含汉字时会搜索不全的问题 修改了搜索范围是当前过程,过程为最后一行且无后续换行时,搜索不全的问题 4.8.0.123¶ 选中正则表达式时,将整词匹配选项替换为单行模式选项 增加对正则表达式单行模式搜索/替换的支持 尝试不关闭窗口的代码高亮方式 选中多行时自动将搜索范围切换至选中内容 在卸载插件时删除全局对象的引用 完美解决了定位时焦点显示的问题. 修改了VBA插件启动时提示下标越界的问题 更改了工程文件名和DLL文件名,去掉了开头的VB字母 修改了安装文件的文件名为VBEnhancedSearch_Setup.exe 代码预览的相关行数默认值修改为12 增加定位时将代码窗体最大化的选项 在搜索结果列表的右键菜单中,增加关闭全部页面的选项 修改了代码预览窗体的背景及关键字的颜色 4.7.0.120¶ 修改了点击关闭按钮关闭页面时出错的问题 修改了快速点击搜索按钮提示错误的问题 修改无页面时点击ESC提示错误的问题 修改无页面时未禁用关闭按钮的问题 修改vbalTabControl,在用BarEnabled?设置Enabled属性的时候同时设定CanClose?,防止用户在禁用时点击关闭按钮. 在弹出对话框之前进行菜单的状态更新操作,防止菜单项选中状态更新不及时. 为了提高效率,使用ByRef?传递使用频率较高函数的字符串参数 对齐升级提示对话框中的版本号 补充了一些注释 去掉了默认标签页 增加关闭其它页面的功能 将TabData?更名为Page 将LogClassInitialize?和LogClassTerminate?函数放入标准模块 增加ILib接口,此接口用于进行全局对象的构建和销毁,并修改所有本地全局对象的初始化机制. 为了提高执行效率,修改了vbalDTab6FES.ocx的源代码,增加可以快速批量设置所有Tab标签的可用属性BarEnabled? 从PageManager?分离出PageCollection?类,此类用于专门管理页面集合 修改了工具栏窗口创建的方式,将此操作合并到CreateObjects?函数中 点确定关闭选项窗口时如果过滤器字符串无变化,则不更新列表 修改滚动条重绘的方式为PostMessage? 修改了Tab控件的事件处理,结果窗口仅处理菜单相关事件,页面增减相关事件由PageManager?类处理 修改了分离PageCollection?类后需要调整的相关调用代码 对于Task对象的事件源更新操作都放在TabManager?类的TabChange?事件中
专业VB课件这个程序的目的是为了实现得到文本框1中的 数组b 和 内置 数组a 的交集,并以交集元素的个数作为 文本框二 显示可以执行的条件。代码如下: Private Sub Command1_Click() Dim a(0 To 9) As String '定义一个内置的数组 Dim b(0 To 3) As String '文本框中 输入的数组 Dim c() As String '数组a与数组b的交集 Dim m As Byte '定义 数组a的循环变量 Dim n As Byte '定义 数组b的循环变量 Dim i As Byte '定义 交集c的元素数量 a(0) = "01": a(1) = 10: a(2) = 11: a(3) = 35: a(4) = 47: a(5) = 56: a(6) = 67: a(7) = 76: a(8) = 83: a(9) = 99 '给数组a赋值 b(0) = Mid(Text1.Text, 1, 2): b(1) = Mid(Text1.Text, 4, 2): b(2) = Mid(Text1.Text, 7, 3): b(3) = Mid(Text1.Text, 10, 3) '给数组b赋值 For m = 0 To 9 For n = 0 To 3 i = 0 If a(m) = b(n) Then c(i) = a(m): i = i + 1: Exit For End If Next n Next m '循环得到交集 c If UBound(c) + 1 >= 2 Then '获得交集c中元素的个数 Text2.Text = 可以执行 End If End Sub 运行时,当我输入 四个两位 的数据,点击按钮 1 显示提示 下标越界。 请求各位达人帮助,我如何才可以达到自己的目的,最好有完整的代码问题补充: 按照一楼的说法做了,代码如下: Private Sub Command1_Click() Dim a(0 To 9) As String '定义一个内置的数组 Dim b(0 To 3) As String '文本框中 输入的数组 Dim c() As String '数组a与数组b的交集 ReDim Preserve c(i) Dim m As Byte '定义 数组a的循环变量 Dim n As Byte '定义 数组b的循环变量 a(0) = "01": a(1) = 10: a(2) = 11: a(3) = 35: a(4) = 47: a(5) = 56: a(6) = 67: a(7) = 76: a(8) = 83: a(9) = 99 '给数组a赋值 b(0) = Mid(Text1.Text, 1, 2): b(1) = Mid(Text1.Text, 4, 2): b(2) = Mid(Text1.Text, 7, 2): b(3) = Mid(Text1.Text, 10, 2) '给数组b赋值 i = 0 For m = 0 To 9 For n = 0 To 3 If a(m) = b(n) Then ReDim Preserve c(i) c(i) = a(m): i = i + 1: Exit For End If Next n Next m '循环得到交集 c If UBound(c) + 1 >= 2 Then '获得交集c中元素的个数 Text2.Text = "可以执行" End If End Sub

7,763

社区成员

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

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