找回密码
 立即注册
搜索
查看: 1420|回复: 1

[软件] EXCEL VBA语言相关..怎么自动隐藏某行

[复制链接]
     
发表于 2016-8-26 19:25 | 显示全部楼层 |阅读模式
本帖最后由 dllplayer 于 2016-8-26 20:43 编辑

RT
现在是这样...我在D18单元格写了一个IF函数..会返回"通过"和"抗剪不足"两个值.
然后希望在当返回的是通过的时候隐藏掉下面的大概3-5行..而返回抗剪不足的时候.显示下面的几行..好进行弯起钢筋相关的计算

根据搜索..按ALT+F11打开VBA界面..
然后在左边sheet1上双击..
复制进去如下一段
Private Sub Worksheet_Change(ByVal Target As Range)

    With Target

        If .Column = 18 And .Count = 4 Then

            If .Value = "通过" Then

                .Rows(22, 25).EntireRow.Hidden = True

            End If

        End If

    End With

End Sub


结果没反应......求各位大大能帮忙修改并说明下.....毕竟无编程基础..就靠推理和搜索在试验
回复

使用道具 举报

发表于 2016-8-26 20:52 | 显示全部楼层
本帖最后由 后腿 于 2016-8-26 20:56 编辑

看描述还不太懂……我随便说下,首先这个过程在sheet有变化时触发,接受一个range参数,但是这里的target如果不是一个单元格,一般是左上角的,也就是程序认为的第一个,所以说后面的.count是永远只有1的,要判断框选的单元格数量要用selection.count,  target.count=4没用,.column是列数,你D列是4,要表达行数是.row,然后后面target.rows(22,25)……会报错,不知为什么,单target.row(22)是target往下22行

    With Target
        If .Row = 18 and selection.count=4 Then
            If .Value = "通过" Then
                ActiveSheet.Rows(22,25).EntireRow.Hidden = True
            End If
        End If
    End With

这样就是当选中18行某单元格切选区正好是4格,且左上角单元格的值是"通过",就把当前sheet的22到25行隐藏
如果要表达刚好选中D18,则是 If .row= 18 and .column=4 Then


还没测自定义函数能不能隐藏行,我吃个饭回来试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-21 16:24 , Processed in 0.059213 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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