ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 为什么运行完这个代码后不能直接运行下一个代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-8 21:07 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
为什么运行完这个代码后不能直接运行下一个代码
Private Sub CommandButton45_Click()
Application.ScreenUpdating = False
    y= [ae1] & "@" & [ae2] & "@" & [ae3] &"@" & [ae4]
   ar = Range("r8:r9000").Value
   For h = 1 To UBound(ar)
       If ar(h, 1) & "@" & ar(h + 1, 1) & "@"& ar(h + 2, 1) & "@" & ar(h + 3, 1) = y Then
           Cells(h + 7, 18).Resize(4, 1).Interior.ColorIndex = 6
       End If
       If h = 8990 Then: End
   Next h
Application.ScreenUpdating= True
Dim arr
ir = 28
Application.ScreenUpdating= False
For i = 18 To 24
'    Z = 1
    For j = Cells(Rows.Count, i).End(3).Row To4 Step -1
    If Cells(j, i).Interior.Color = vbYellowAnd Cells(j - 3, i).Interior.Color = vbYellow Then
'        If Z > 1 Then
            If j >= 11 Then
                Cells(j - 11,i).Resize(21).Copy Cells(8, r)
                r = r + 1
            End If
'        End If
        Z = Z + 1
    End If
    Next
Next i
Application.ScreenUpdating= True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-9 07:35 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-11-9 07:47 | 显示全部楼层
感觉不是不运行,而是i、j两个取值引起吧?你F8一步步执行,看看为什么不执行就知道啦

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-9 19:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
microyip 发表于 2019-11-9 07:47
感觉不是不运行,而是i、j两个取值引起吧?你F8一步步执行,看看为什么不执行就知道啦

例:点击自动,只能运行"r列上色"代码,不能自动运行"到ab8-17"代码,但手动又可以,不知怎么回事?

工作簿p.zip

80.81 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2019-11-9 20:26 | 显示全部楼层
If h = 8990 Then: End
这个exit sub是否合适?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-9 20:42 | 显示全部楼层
liulang0808 发表于 2019-11-9 20:26
If h = 8990 Then: End
这个exit sub是否合适?

r列上色按钮代码的原文是:在AE1--AE4单元格中分别输入4个数字,点击按钮,若R8--R9000范围内有4个连续单元格内数排列及内容与AE1--AE4单元格内数一样,那么这4个单元格显黄色。
怎么修改?

TA的精华主题

TA的得分主题

发表于 2019-11-9 20:45 | 显示全部楼层
青青的河边草 发表于 2019-11-9 20:42
r列上色按钮代码的原文是:在AE1--AE4单元格中分别输入4个数字,点击按钮,若R8--R9000范围内有4个连续单 ...

R8--R9000对这个区域从上往下遍历,判断是否与AE1相同,如果相同再往下注意核对3跟数值是否与AE2,AE3,AE4相同即可

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-9 20:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liulang0808 发表于 2019-11-9 20:45
R8--R9000对这个区域从上往下遍历,判断是否与AE1相同,如果相同再往下注意核对3跟数值是否与AE2,AE3,AE4 ...

您帮忙改下代码行吗?

TA的精华主题

TA的得分主题

发表于 2019-11-9 21:03 | 显示全部楼层
    brr = [ae1:ae4]
    arr = [R1:R9000]
    For j = 8 To UBound(arr) - 3
        If arr(j, 1) = brr(1, 1) Then
            For i = 1 To 3
                If arr(j + i, 1) <> brr(i + 1, 1) Then GoTo l1
            Next i
            Cells(j, 1).Resize(4).Interior.ColorIndex = 3
        End If
l1:
    Next j
代码未测试,楼主参考吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-9 21:11 | 显示全部楼层
本帖最后由 青青的河边草 于 2019-11-9 21:26 编辑
liulang0808 发表于 2019-11-9 21:03
brr = [ae1:ae4]
    arr = [R1:R9000]
    For j = 8 To UBound(arr) - 3
没有变黄色

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-25 20:23 , Processed in 0.033696 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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