Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5283|回复: 4

VBA自动显示隐藏行和列

[复制链接]
发表于 2019-8-14 17:01 | 显示全部楼层 |阅读模式
B列的单元格是引用其他表的数据如果B列有单元格为0则隐藏这一行,其他数字则显示这一行,同理A3-BK3这一行也是引用其他表的数据 单元格有数据则显示为零就隐藏
Sub 刷新()
On Error Resume Next
Dim i
For i = 4 To 68
    If Len(Range("B" & i).Value) > 0 And Range("B" & i).Value = 0 Then
        Cells(i, "b").EntireRow.Hidden = True
    End If
Next
End Sub

这样用按件操作但是有点不好就是只能隐藏无法显示

还有就是怎么怎么可以把一个单元格是工作表的名称 我是名称定义法。但是如果我在其他工作表操作数据了,那个单元格就变成其他工作表名字了,如何固定这个名字呢



发表于 2019-8-15 12:24 | 显示全部楼层
1、关于掩藏和非掩藏,比如:
    For i = 1 To [a10000].End(3).Row   '循环a列所有行,如果数据不是从a列开始,修改成对应字母
         If Cells(i, 2) = 0 Then     'cells(i,2)表示第二列,就是b列,cells在循环中比range好用,推荐
            Rows(i).EntireRow.Hidden = True     '当前行b列为零,当前行隐藏
         Else
            Rows(i).EntireRow.Hidden = False   '当前行b列不为零,当前行取消隐藏
         End If
    Next i
2、你第二个问题我没看清楚,你能否举个具体例子?
回复

使用道具 举报

 楼主| 发表于 2019-8-16 12:49 | 显示全部楼层
hfwufanhf2006 发表于 2019-8-15 12:24
1、关于掩藏和非掩藏,比如:
    For i = 1 To [a10000].End(3).Row   '循环a列所有行,如果数据不是从a ...

谢谢老师。第一个问题已经解决了。第二个问题和第一个问题一样。就是说我从A3-BK3这一行如果有一个单元格为0 就隐藏这行一列。就和隐藏行一个道理。,,不是0就显示。
回复

使用道具 举报

发表于 2019-8-16 13:03 | 显示全部楼层
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)
这个公式可以固定工作表名不变化。
回复

使用道具 举报

发表于 2019-8-16 16:09 | 显示全部楼层
本帖最后由 hfwufanhf2006 于 2019-8-16 16:22 编辑
wulangzi650 发表于 2019-8-16 12:49
谢谢老师。第一个问题已经解决了。第二个问题和第一个问题一样。就是说我从A3-BK3这一行如果有一个单元格 ...

大致上跟第一个问题的方法类似,就是要检索a3:bk3这个区域所有的单元格,逐个判断是否有零存在:
(你先数一下BK3是多少列,我初步算下来是63列,所以代码就用这个数字好了)
bz=false    '初始化判断标识
for i=1 to 63
     if cells(3,i)=0 then   '此区间只要有任何一个单元格为零,就改变判断标识,并退出循环
        bz=true
        exit for
     endif
next i
if bz then   '存在0
   rows(3).EntireRow.Hidden = True    '隐藏
else
   rows(3).EntireRow.Hidden = false
endif

上面的代码错了,太仓促没看清你意思。你是要隐藏列,不是行:
写成下面这样的就行了
For i = 1 To 63
     If Cells(3, i) = 0 Then
        Columns(i).EntireColumn.Hidden = True
     Else
        Columns(i).EntireColumn.Hidden = False
     End If
Next i



回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 07:14 , Processed in 0.136490 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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