ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

为什么前面三行的内容修改时代码就不运行,求大师改一下哦

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-8-30 16:17 | 显示全部楼层 |阅读模式
为什么前面三行的内容修改时代码就不运行,求大师改一下哦
1、2、3行双击或修改内容后没有什么提示,代码就不运行了,非要关闭文件重新打开才会运行。求大师帮我想看一下代码那里出了问题,谢谢

中华孝道园石材2015.8.30.rar

67.89 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2015-8-30 17:29 | 显示全部楼层
  If Target.Row < 4 Then Exit Sub
删除这一句,就行了

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-30 17:33 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-30 17:41 | 显示全部楼层
cqlpjxx 发表于 2015-8-30 17:29
If Target.Row < 4 Then Exit Sub
删除这一句,就行了

删除了会出错,A1和A2变为了序号,当双击第三行时会提示代码出错

TA的精华主题

TA的得分主题

发表于 2015-8-30 17:41 | 显示全部楼层
Application.EnableEvents = False
上面这句禁止了事件触发,
代码中有好几处有如下语句
If Target.Row < 4 Then Exit Sub

上面语句在退出过程时没有重新开方触发事件。

应该在每一处退出过程前加上一句 Application.EnableEvents = True

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-30 17:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
maditate 发表于 2015-8-30 17:41
Application.EnableEvents = False
上面这句禁止了事件触发,
代码中有好几处有如下语句

加在那个位置哦,老师是加在这句前面吗
Application.EnableEvents = True
If Target.Row < 4 Then Exit Sub
是这样吗,这样的话会一直死循环的

TA的精华主题

TA的得分主题

发表于 2015-8-30 17:56 | 显示全部楼层
有二种加法,第一种在最后一句  Application.EnableEvents = True  前写上标号如(不一定是数字,可以是文字)

100
Application.EnableEvents = True

在每一句需中途退过程处  Exit Sub  换成  goto 100

第二种是每处的  Exit Sub  前加上 Application.EnableEvents = True
从你的代码结构来看,还需对条件语句作修改
If Target.Row < 4 Then
Application.EnableEvents = True
  Exit Sub
End If

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-30 18:01 | 显示全部楼层
maditate 发表于 2015-8-30 17:56
有二种加法,第一种在最后一句  Application.EnableEvents = True  前写上标号如(不一定是数字,可以是文 ...

老师,能直接帮我改一下吗,我都改乱了5555

TA的精华主题

TA的得分主题

发表于 2015-8-30 18:03 | 显示全部楼层

如此试试

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim reg
  3.     Set reg = CreateObject("VBScript.RegExp")
  4.     Dim A$, i%
  5.     Dim arr '
  6.     Dim b
  7.     '************ 刚加的代码 *************
  8.    
  9.     Dim NewInt As Long
  10.     NewInt = Cells(Rows.Count, 2).End(xlUp).Row
  11.     'If ActiveCell.Row > NewInt Then Exit Sub
  12.    
  13.    
  14.     '************************************
  15.     Application.EnableEvents = False
  16.     Application.ScreenUpdating = False
  17.    
  18.     Set reg = CreateObject("vbscript.regexp")
  19.     A = Selection.Address
  20.     With reg
  21.         .Global = True
  22.         .Pattern = "\d{1,3}"
  23.         Set arr = .Execute(A)
  24.     End With
  25.     If Target.Column < 8 Then
  26.         If Target.Row < 4 Then GoTo 100
  27.         For i = arr(0) To arr(arr.Count - 1)
  28.             Macro (i)
  29.         Next
  30.         Macro (Target.Row)
  31.         Call 编号
  32.         Call 汇总
  33.     End If
  34.     If Target.Column > 2 And (Target.Column = 9 Or Target.Column = 10) Then
  35.         If Target.Row < 4 Then GoTo 100
  36.         Call 汇总
  37.     End If
  38.     Application.ScreenUpdating = True
  39.     '************ 刚加的代码 *************
  40.    
  41.     Dim NewInt2 As Long
  42.     NewInt = Cells(Rows.Count, 2).End(xlUp).Row
  43.     NewInt2 = Cells(Rows.Count, 7).End(xlUp).Row
  44.     If NewInt2 > NewInt Then
  45.         Range(NewInt + 1 & ":" & NewInt2).Delete
  46.     End If
  47.    
  48.     '************************************
  49.    
  50. 100
  51.     Application.EnableEvents = True
  52.    
  53. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-8-30 18:47 | 显示全部楼层
maditate 发表于 2015-8-30 17:41
Application.EnableEvents = False
上面这句禁止了事件触发,
代码中有好几处有如下语句

http://club.excelhome.net/thread-1226288-1-1.html 能帮忙解决吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 01:49 , Processed in 0.041793 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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