ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 代码运行时出现,下标越界,提示,请老师们帮助一下。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-10-9 10:05 | 显示全部楼层 |阅读模式
查询代码运行时,出现下标越界,从论坛上学习的一段代码,改用到实际当中就不行了,恳请老师们帮忙改一下,谢谢!
  1. Sub 用药补录查询()
  2. Dim rg As Range, i%, j%
  3. Application.ScreenUpdating = False
  4. If IsNumeric([K5]) = False Then MsgBox "单号错误": Exit Sub
  5. Set rg = Sheets("查体和用药数据库").Columns(1).Find([K5], , , 1)
  6. If rg Is Nothing Then MsgBox "单号格式不正确或查询不到单号数据!": Exit Sub
  7. With Sheets("查体和用药数据库")
  8.     i = .Columns(1).Find([K5], searchdirection:=xlNext).Row
  9.     arr = .Range("a" & i & ":w" & i)
  10.         [S10] = arr(1, 51) '药物名称1
  11.         [U10] = arr(1, 52) '用法
  12.         [W10] = arr(1, 53) '用量
  13.         [Y10] = arr(1, 54) '单位
  14.         [Z10] = arr(1, 55) '用药时间
  15.         [AB10] = arr(1, 56) '依从性
  16.         [S11] = arr(1, 57) '药物名称2
  17.         [U11] = arr(1, 58) '用法
  18.         [W11] = arr(1, 59) '用量
  19.         [Y11] = arr(1, 60) '单位
  20.         [Z11] = arr(1, 61) '用药时间
  21.         [AB11] = arr(1, 62) '依从性
  22.         [S12] = arr(1, 63) '药物名称3
  23.         [U12] = arr(1, 64) '用法
  24.         [W12] = arr(1, 65) '用量
  25.         [Y12] = arr(1, 66) '单位
  26.         [Z12] = arr(1, 67) '用药时间
  27.         [AB12] = arr(1, 68) '依从性
  28.         [S13] = arr(1, 69) '药物名称4
  29.         [U13] = arr(1, 70) '用法
  30.         [W13] = arr(1, 71) '用量
  31.         [Y13] = arr(1, 72) '单位
  32.         [Z13] = arr(1, 73) '用药时间
  33.         [AB13] = arr(1, 74) '依从性
  34.         [S14] = arr(1, 75) '药物名称5
  35.         [U14] = arr(1, 76) '用法
  36.         [W14] = arr(1, 77) '用量
  37.         [Y14] = arr(1, 78) '单位
  38.         [Z14] = arr(1, 79) '用药时间
  39.         [AB14] = arr(1, 80) '依从性
  40.         [S15] = arr(1, 81) '药物名称6
  41.         [U15] = arr(1, 82) '用法
  42.         [W15] = arr(1, 83) '用量
  43.         [Y15] = arr(1, 84) '单位
  44.         [Z15] = arr(1, 85) '用药时间
  45.         [AB15] = arr(1, 86) '依从性
  46.         [S16] = arr(1, 87) '药物名称7
  47.         [U16] = arr(1, 88) '用法
  48.         [W16] = arr(1, 89) '用量
  49.         [Y16] = arr(1, 90) '单位
  50.         [Z16] = arr(1, 91) '用药时间
  51.         [AB16] = arr(1, 92) '依从性
  52. End With
  53. Application.ScreenUpdating = True
  54. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-10-9 10:14 | 显示全部楼层
建议楼主上传附件!

TA的精华主题

TA的得分主题

发表于 2018-10-9 10:24 | 显示全部楼层
肯定越界啊
arr = .Range("a" & i & ":w" & i) 说明是A--W列的区间,总共23列,最大为arr(1,23)。

TA的精华主题

TA的得分主题

发表于 2018-10-9 10:25 | 显示全部楼层
如果最大列是96列的话,改一下:
arr = .Range("a" & i & ":cn" & i)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-10-9 10:29 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-10-9 10:34 | 显示全部楼层
代码可以用了,就是这个问题,我是刚入门,谢谢grf1973这位老师!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 16:45 , Processed in 0.021109 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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