如何避免VB程序中的这种“运行时错误”?

发布于 财经 2024-02-19
12个回答
  1. 匿名用户2024-01-25

    您可以在语句之前使用 On Error Resume Next 语句,然后确定语句中是否包含“无法删除注册密钥”字样,如果是,则表示启动已取消。 这样,程序就不会报告错误。

    使用你给出的折叠的**。

    **例如:

    set reg = createobject("")on error resume next

    hkey 本地计算机 Virtual Brother\Software\Microsoft\Windows\CurrentVersion 运行"

    if instr(, "无法删除注册密钥"卖得很差,打了 0 然后msgbox"程序未设置为与系统一起启动。 "

    endifset reg = nothing if instr(,"无法删除注册密钥"0 然后也可以更改为使用错误号,这样即使在英语环境中,也不会因为"无法删除注册密钥"错误消息变为英文,导致判断错误:

    if = 2147024894 then

  2. 匿名用户2024-01-24

    关键字 me 可以出现在类模块中。 它也可以是形式。 截图中出现这个错误的原因可能是 ** 放在了标准模块中,解决方法是将 me 替换为指定的对象名称。

    由于问题信息不完整,因此只能自己尝试。

    屏幕截图中圈出的几个地方可能会出现相同的问题。

  3. 匿名用户2024-01-23

    在Excel中,VBA指示下标越界,指示对象不存在或数组元素不存在。

    举个简单的例子:工作表中没有人"一月"但是,此工作表使用工作表("一月");数组定义了 arr(1 到 10),但将使用 arr(11),并且下标将越界。

    简单地说:越界下标是超出范围的引号。

    1.当我们在Excel的VBA中输入以下**并运行时,会出现“运行过程中错误9下标越界”的提示。 **下面:

    sub a()

    dim arr() as string

    arr(1) = 你好"

    end sub

    2.其实上面的“运行时错误9下标越界”是因为定义的动态数组没有确定维度和大小。 这个问题可以通过定义固定数量的维度和维度来解决,或者通过使用 redim 定义维度和维度来解决。

    更正后的**如下:

    sub a()

    dim arr() 定义了一个动态数组。

    dim i as integer

    redim arr(1 to 3) '定义一个由 3 个元素组成的数组并初始化该数组。

    arr(1) =3

    arr(2) =4

    arr(3) =5'在下面的语句中,重新定义一个包含 10 个元素的数组,清除前面的元素,并重新分配新的存储变量。

    redim arr(1 to 10)

    for i = 1 to 10

    arr(i) =i

    next i

    结束子,就是这样。

  4. 匿名用户2024-01-22

    楼上搞笑。 80%的此类问题是您的程序是用错误编写的。

    如果操作内存或一些危险的句柄,使用CopyMemory、varptr、callwindowproc等危险的操作函数与VB本身相比,这样在运行程序时一不小心,就可能导致内存访问越界、数据覆盖、内存泄漏、段异常、堆栈溢出、堆栈不平衡等问题。

    需要注意的是,这些问题可能不会导致程序在发生后立即死机,但往往带有滞后,执行后表面可能没有异常,但是整个程序运行环境的某些方面已经损坏了(比如栈不平衡),或者VB托管的一些句柄失效了, 这将在未来的某个时候引起问题。

    至于为什么你的程序会导致VB的IDE挂起,那是因为按F5运行程序,其实VB工作在解释模式下,你编写的程序和VB的IDE是同一个进程,所以你程序中的错误会导致VB的IDE失败,而且经常是滞后,当你的程序退出时, 一些错误会突然发生(最简单的例子,你在VB中申请了一个数组,然后使用CopyMemory来改变它的安全数组结构,如果你在退出程序的时候不改回去,那么VB IDE在程序退出时会因为**空格错误而崩溃,当然这属于BT的用法)。

    如果打开一个新的 VB,加载项目,编译它并独立启动它,则不会出现 IDE 错误。 这也是很多人在VB6比较危险的时候调试的常用方式。 或者养成在每个 f5 之前保存的习惯。

    补充:有人说,这些80%是你的**问题,如果你换了一个新的VB并且这种问题仍然出现,那么20%基本上被排除在外。 正如我所说,你最好先检查你的**。

    如果你实在看不懂,可以发布**片段给大家看,帮你找茬。

  5. 匿名用户2024-01-21

    你的VB有问题...... 这是VB的错,重新安装VB不是你的,,,,你不能再使用它了。

    您是否通过编程来操纵内存或其他危险的 API?

    如果是这样,那可能是因为你的程序不严谨,如果你只是使用 VB 的内部函数和一些控件,这绝对不是你的程序的问题。

  6. 匿名用户2024-01-20

    这不是VB问题,你检查病毒,因为“**无法读取”意味着无法读取内存,如果它是“0x0000....名称是程序根本没有分配内存。

  7. 匿名用户2024-01-19

    “** cannot be read”是典型的内存访问越界,例如,VB 中的简单语句可能会导致此错误:

    copymemory byval 0&, 0, 1 '将数据写入地址 0。

    您确定可以直接访问 VB 程序中的内存吗? 或者是否有任何对其他库的引用? 这些库可能不完整或包含有风险的操作。

  8. 匿名用户2024-01-18

    因为a-b=-90,在找它的平方根时有误差,因为负数没有平方根(在实数范围内),所以sqr(x)函数需要参数x 0,而这个程序中的sqr(-90)参数明显是负数,所以提示参数无效。 所以应该选择C。

  9. 匿名用户2024-01-17

    选择答案 C

    负数不能取平方根。

  10. 匿名用户2024-01-16

    它后面应该有一个双精度变量,此外,它应该大于 0

  11. 匿名用户2024-01-15

    timer1 time() 中,不要直接使用 n,而是使用隐藏的文本框来保存 n,这在不同的函数中是不一样的。

  12. 匿名用户2024-01-14

    取下闪光灯控件并尝试一下,很可能是这个问题。

相关回答
12个回答2024-02-19

只有多了进步才能解决,不死记硬背才能解决问题,也许你打五开用五笔,发现想背词根的时候就开始闹事了,但是你发现不好背,或者背不下来,但时间长了, 你会慢慢地,脑子里想着一个词,手会自然而然地打出来,所以写下来没有多大意义,只有用到的时候,才不会去网上找,现在是互联网时代,有些东西:一点点。

19个回答2024-02-19

ASC 函数。

返回一个整数,表示一个字符串。 >>>More

4个回答2024-02-19

cmd1 中。

open "(在此处输入完整路径,例如 c:,不要错过引号,不要用括号括起来)。" for output as #1 '打开 如果它已经存在,请用新的替换旧的,如果您不想替换它并想继续在文本末尾书写,请将输出更改为附加 >>>More

9个回答2024-02-19

在拍摄人物时,以下错误很常见,了解它们可以帮助您更好地避免犯错误并拍摄更好的效果。 >>>More

7个回答2024-02-19

父母要给孩子定规矩,做错事要给他们一些惩罚,做对事后要鼓励他们,或者给他们一些小小的奖励,教育孩子时一定不能心软。