ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 正则和字典的已经引用,为什么还会出现错误424呢?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-11-1 06:22 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 chenwenming 于 2017-11-1 06:24 编辑

Microsoft Scripting Runtime
Microsoft VBcript regular Express
正则和字典的已经引用,为什么还会出现错误424呢

  1. Sub test()
  2.     Dim reg As New RegExp
  3.     Dim p As Paragraph
  4.     Dim dic As New Scripting.Dictionary
  5.     Dim dic2, dic3 As Scripting.Dictionary
  6.     level1 = ""
  7.     level2 = ""
  8.         For Each p In Paragraphs
  9.         reg.Pattern = "^\s*[一二三四五六七八九十]+、"
  10.         If reg.test(p.Range.Text) Then
  11.             Set dic2 = New Scripting.Dictionary
  12.             dic.Add p.Range.Text, dic2
  13.             level1 = p.Range.Text
  14.             GoTo next1
  15.         End If
  16.         reg.Pattern = "^\s*[0-9]+、"
  17.         If reg.test(p.Range.Text) And level1 <> "" Then
  18.             If Not (dic(level1).Exists(p.Range.Text)) Then
  19.                 Set dic3 = New Scripting.Dictionary
  20.                 dic(level1).Add p.Range.Text, dic3
  21.             End If
  22.             level2 = p.Range.Text
  23.             GoTo next1
  24.         End If
  25.         reg.Pattern = "^\s*[A-Z]+、"
  26.         If reg.test(p.Range.Text) And level2 <> "" Then
  27.             If Not (dic(level1)(level2).Exists(p.Range.Text)) Then
  28.                 dic(level1)(level2).Add p.Range.Text, ""
  29.                 p.Range.HighlightColorIndex = wdAuto
  30.             Else
  31.                 'p.Range.HighlightColorIndex = wdYellow
  32.                 p.Range.Delete
  33.             End If
  34.         End If
  35. next1:
  36.     Next
  37. End Sub
复制代码



TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-4 08:37 | 显示全部楼层
找到原因了
  1. Sub test()
  2.     'Dim reg As New RegExp
  3.     Dim reg As Object
  4.     Dim dic, dic2, dic3 As Object
  5.     Dim p As Paragraph
  6.     'Dim dic As New Scripting.Dictionary
  7.     Set dic = CreateObject("scripting.dictionary")
  8.     'Dim dic2, dic3 As Scripting.Dictionary
  9.     level1 = ""
  10.     level2 = ""
  11.         For Each p In ActiveDocument.Paragraphs
  12.          Set reg = CreateObject("vbscript.regexp")
  13.         reg.Pattern = "^\s*[一二三四五六七八九十]+、"
  14.         If reg.test(p.Range.Text) Then
  15.             Set dic2 = CreateObject("scripting.dictionary")
  16.             'Set dic2 = New Scripting.Dictionary
  17.             dic.Add p.Range.Text, dic2
  18.             level1 = p.Range.Text
  19.             GoTo next1
  20.         End If
  21.         reg.Pattern = "^\s*[0-9]+、"
  22.         If reg.test(p.Range.Text) And level1 <> "" Then
  23.             If Not (dic(level1).Exists(p.Range.Text)) Then
  24.                 Set dic3 = CreateObject("scripting.dictionary")
  25.                 'Set dic3 = New Scripting.Dictionary
  26.                 dic(level1).Add p.Range.Text, dic3
  27.             End If
  28.             level2 = p.Range.Text
  29.             GoTo next1
  30.         End If
  31.         reg.Pattern = "^\s*[A-Z]+、"
  32.         If reg.test(p.Range.Text) And level2 <> "" Then
  33.             If Not (dic(level1)(level2).Exists(p.Range.Text)) Then
  34.                 dic(level1)(level2).Add p.Range.Text, ""
  35.                 p.Range.HighlightColorIndex = wdAuto
  36.             Else
  37.                 'p.Range.HighlightColorIndex = wdYellow
  38.                 p.Range.Delete
  39.             End If
  40.         End If
  41. next1:
  42.     Next
  43. End Sub
复制代码


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

本版积分规则

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

GMT+8, 2025-1-12 12:02 , Processed in 0.017119 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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