ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 259|回复: 7

[求助] VB溢出,求大神帮助,急

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-29 14:22 | 显示全部楼层 |阅读模式


EXCLE 2021,数据过多,超出列范围,VB小白,请求大神帮助!
是否有别的办法可以解决溢出问题;
报错如下,附件:分解器
8f27097233314f72874b2677cfb91f9.png

3eb9d64771532773d1b89f160c4d751.png

分解器.zip

266.38 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2024-4-29 14:26 | 显示全部楼层
建议用
  1. rows.count
复制代码

TA的精华主题

TA的得分主题

发表于 2024-4-29 14:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-4-29 14:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
office2021版了,这列数都能超出?这得有多少列啊。

TA的精华主题

TA的得分主题

发表于 2024-4-29 15:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 DAY18883320729 于 2024-4-29 16:15 编辑

我没看明白楼主要做什么,稍微整理了一点;
  1. Dim alastrow&, blastrow&, clastrow&, num&
  2. Dim crRng As Range
  3. With ActiveSheet
  4.     alastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
  5.     blastrow = .Cells(.Rows.Count, 2).End(xlUp).Row
  6.     clastrow = .Cells(.Rows.Count, 3).End(xlUp).Row
  7.     num = 3 * (clastrow - 1)
  8.     Set crRng = Range("a2:c" & clastrow)
  9. End With
  10. If clastrow = 1 Then
  11.    MsgBox "未输入任何数据,请输入数据后再制作!"
  12.    Exit Sub
  13. ElseIf crRng.Count <> num Then
  14.    MsgBox "输入的数据不完整,请检查!"
  15.    Exit Sub
  16. End If
复制代码

TA的精华主题

TA的得分主题

发表于 2024-4-29 15:36 | 显示全部楼层
VB溢出是指在VB(Visual Basic)程序中,由于某些变量定义的数据范围过小,当程序运行时变量中保存的数据超出了其能表示的范围,从而导致数据溢出。以下是关于VB溢出的详细解释:
  • 原因
    • 变量定义的范围过小,无法容纳实际要存储的数据。
    • 赋值、计算或数据类型转换的结果太大,不能在变量类型所允许的范围内表示。
    • 给属性的赋值超过了该属性能接受的最大值。
  • 示例
    • 假设有一个Integer类型的变量,其范围在-32768到32767之间。如果尝试将一个超出此范围的值赋给该变量,就会导致溢出。
    • 在进行数学运算时,如果结果超出了变量的数据类型所能表示的范围,也会发生溢出。例如,两个较大的正数相乘可能产生一个超出定义范围的结果。
  • 解决方案
    • 使用更大范围的变量类型来存储数据,如Long类型代替Integer类型。
    • 在进行数学运算前,先检查操作数和结果是否在变量的数据类型所能表示的范围内。
    • 使用适当的类型转换函数,如CLng(),来确保数值在赋值或计算过程中保持在合适的范围内。
  • 预防措施
    • 在编程时预估变量的可能取值范围,并据此选择合适的变量类型。
    • 对于可能产生大数值的计算,使用更大范围的变量类型来避免潜在的溢出问题。
    • 编写代码时加入错误处理机制,以便在发生溢出时能够捕获并处理异常。

总之,VB溢出是一个常见的编程错误,它可能导致程序崩溃或产生不可预测的结果。为了避免这种情况发生,程序员应该仔细考虑变量的数据类型和范围,并采取适当的预防措施来确保程序的稳定性和可靠性。

成长作文网:http://www.sjzwndj.cn

成长作文网:http://www.sjzwndj.cn

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-4-29 16:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 yynrzwh 于 2024-4-29 16:39 编辑

检查是否存在空单元格:
Dim rng as range
Set rng = Sheets("关系表").Range("a1").CurrentRegion.Find(What:="", _
            LookIn:=xlValues, LookAt:=xlWhole)
If Not rng Is Nothing Then
    MsgBox "输入的数据不完整,请检查!"
    rng.Select
End If

评分

1

查看全部评分

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-1 07:38 , Processed in 0.045437 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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