ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 有一串代码不知道什么意思,想请大神解释下

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-9 21:40 | 显示全部楼层 |阅读模式

Dim rng As Range
Set rng = Rows(5000)
i = Range("A5000").End(3).Row
    For k = 2 To i
        h = Range("A" & k)
        If InStr(1, h, "#") <> 0 And Range("a" & k - 1) > 0 Then
            Set rng = Union(Range("A" & k).EntireRow, rng)
        End If
    Next
rng.Insert
rng.Insert
rng.Insert
rng.Insert
rng.Insert
End Sub
有没有大神能给我解释一下,什么意思

TA的精华主题

TA的得分主题

发表于 2018-8-10 09:05 | 显示全部楼层
Dim rng As Range           ’声明 RNG 为单元格对象
Set rng = Rows(5000)    ‘设置 RNG为5000行区域
i = Range("A5000").End(3).Row     ’变量 I 为A列从5000行向上非空白单元格位置
    For k = 2 To i                         ‘从第二行到第I 行循环
        h = Range("A" & k)             ‘H为A列中带变量的单元格Range("A" & k)
        If InStr(1, h, "#") <> 0 And Range("a" & k - 1) > 0 Then
      ’假若单元格H中没有字符串“#“ 并且H的上一个单元格值大于0 那么
            Set rng = Union(Range("A" & k).EntireRow, rng) ‘将Range("A" & k)所在的整行与RNG 合并赋给RNG
        End If
    Next
rng.Insert   ‘插入空行
rng.Insert
rng.Insert
rng.Insert
rng.Insert
End Sub

TA的精华主题

TA的得分主题

发表于 2018-8-9 23:21 | 显示全部楼层
你说得是哪句不懂?
再说这个代码患了强迫症?需要那么多重复?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-10 07:57 | 显示全部楼层
不知道为什么 发表于 2018-8-9 23:21
你说得是哪句不懂?
再说这个代码患了强迫症?需要那么多重复?

h = Range("A" & k)
        If InStr(1, h, "#") <> 0 And Range("a" & k - 1) > 0 Then
            Set rng = Union(Range("A" & k).EntireRow, rng  这些话
没办法,不会写代码啊,

TA的精华主题

TA的得分主题

发表于 2018-8-10 08:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
送到 发表于 2018-8-10 07:57
h = Range("A" & k)
        If InStr(1, h, "#")  0 And Range("a" & k - 1) > 0 Then
            S ...

代码要结合附件内容去看的

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-10 08:23 | 显示全部楼层
liulang0808 发表于 2018-8-10 08:16
代码要结合附件内容去看的

大致内容如下:
2#       
板1       
0.0         20.0
75.9         20.0
97.2         -1.0
183.5         -1.8
575.4         -1.8
616.8         -1.0
664.1         -0.2
712.1         0.0
746.2         0.0
808.0         -2.4
817.9         -3.6
829.4         -1.4
846.8         -1.0
869.8         2.2
905.5         20.0
3#       
板1       
0.0         20.0
54.7         20.0
84.1         -0.6
145.7         -1.8
196.6         -2.6
246.6         -3.0
293.0         -3.2
340.3         -3.2
425.5         -2.6
506.5         -2.0
625.1         -2.0
700.3         -1.4
745.1         0.4
788.3         3.2
855.3         20.0

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-10 08:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-8-10 08:44 | 显示全部楼层
送到 发表于 2018-8-10 08:26
大致内容如下:麻烦帮忙解释下

楼主有附件,有代码
那么代码完成的工作是不是楼主需求的?

TA的精华主题

TA的得分主题

发表于 2018-8-10 08:45 | 显示全部楼层
送到 发表于 2018-8-10 08:26
大致内容如下:麻烦帮忙解释下

楼主有附件,有代码
那么代码完成的工作是不是楼主需求的?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-10 10:53 | 显示全部楼层
iwangyi 发表于 2018-8-10 09:05
Dim rng As Range           ’声明 RNG 为单元格对象
Set rng = Rows(5000)    ‘设置 RNG为5000行区域
...

谢谢你的帮助,使我能够很好的理解代码的意思,在的帮助下完成了任务
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 21:50 , Processed in 0.026901 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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