ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA编程中Range函数运行出错

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-10-27 20:31 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
下面这段代码运行时当MyWord.Range(i, i + 1)中的i值达到一万一千多时提示错误代码“4608”,并显示“数值超出范围”,请大师指点,谢谢!
Sub 调试()
   Dim AppWord As Object 'word程序对象
   Dim MyWord As Object 'word文档对象
   Dim mf

   Dim MySheet As Worksheet '用于输出的工作表对象
   Dim R_sc As Long '输出行

   Dim fso As Object 'fso对象

   Dim InputPath, Cha As String '提取数据的文件夹路径

   Dim S_start As Long '选取字符的开始位置
   Dim S_end As Long '选取字符的结尾位置

   Set MySheet = ThisWorkbook.Sheets("调试")
   MySheet.Range("A3:H200").Clear '清空输出表

   InputPath = ThisWorkbook.Path
   mf = Dir(ThisWorkbook.Path & "\*田径运动会*.doc*")
   Set AppWord = CreateObject("Word.Application")
   If mf <> "" Then
      Set MyWord = AppWord.Documents.Open(ThisWorkbook.Path & "\" & mf)
      AppWord.Visible = True
   Else
      MsgBox "没有这个Word文档!", 16, "警告......"
   End If
   '遍历word文档中的字符并赋值给变量Cha
   j = 3
   k = 0
   For i = 0 To MyWord.Range.End
      k = k + 1
      Cha = MyWord.Range(i, i + 1)
      MySheet.Cells(j, k) = Cha
      MySheet.Cells(j + 1, k) = Asc(Cha)
      If Cha Like "*[一-龥]*" Then
         MySheet.Cells(j + 1, k) = "是" & i
      Else
         MySheet.Cells(j + 1, k) = "否" & i
      End If
      If (i + 1) Mod 20 = 0 Then
         k = 0
         j = j + 3
      End If
   Next
   MyWord.Close
   Set MyWord = Nothing
   AppWord.Application.Quit
   Set MySheet = Nothing
   Set AppWord = Nothing
   Set fso = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-10-27 21:20 | 显示全部楼层
我做了测试,当i指向word文档结尾时不能执行Cha = MyWord.Range(i, i + 1),请问这是什么原因?

TA的精华主题

TA的得分主题

发表于 2023-10-28 08:10 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-10-28 08:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  For i = 0 To MyWord.Range.End
改为
  For i = 0 To MyWord.Range.End-2

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

本版积分规则

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

GMT+8, 2024-11-24 05:15 , Processed in 0.038794 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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