发新话题
打印

用VBA自动隐藏“有公式但显示为空白行”怎么弄?

回复 1楼帖子 的帖子

一点思路:
Sub 隐藏()
    Range("A1:D20").Select  '这个区域可根据实际确定
    Selection.SpecialCells(xlCellTypeFormulas, 23).Select
    Selection.EntireRow.Hidden = True
End Sub



是否符合要求?
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 5楼帖子 的帖子

代入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
Application.ScreenUpdating = False
  Application.DisplayAlerts = False
    Rows("2:69").Select
     Selection.EntireRow.Hidden = False
      Range("A1:D69").Select
     Selection.SpecialCells(xlCellTypeFormulas, 22).Select
    Selection.EntireRow.Hidden = True
    Sheet1.[A1].Select
   Application.ScreenUpdating = True
  Application.DisplayAlerts = True
End If
End Sub

应该是这样的效果。

附件

1(修改).xls (25 KB)

2016-9-2 14:46, 下载次数: 37

我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 8楼帖子 的帖子

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then   ‘当A1数据变化时
Application.ScreenUpdating = False   'Excel停止刷新,防止屏幕闪烁,目的是加快代码执行速度
  Application.DisplayAlerts = False     'Excel不显示警告和消息提示框
    Rows("2:69").Select                       '选择第2-69行,提示:这个你可以根据实际修改
     Selection.EntireRow.Hidden = False         '恢复第2-69行所隐藏的行,提示:这个你可以根据实际修改
      Range("A1:D69").Select              '选取A1:D69区域,提示:这个你可以根据实际修改
     Selection.SpecialCells(xlCellTypeFormulas, 22).Select      ‘将公式中逻辑和错误类型选择
    Selection.EntireRow.Hidden = True           '隐藏所中上一行代码的行
    Sheet1.[A1].Select                        ’以上操作后定位A1单元格
   Application.ScreenUpdating = True 'Excel启用刷新,代码执行后恢复
   Application.DisplayAlerts = True    'Excel显示警告和消息提示框
End If                                               '结束
End Sub
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 10楼帖子 的帖子

如果可以你上传附件说明。不需要真实数据。
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 13楼帖子 的帖子

稍微改动下:
A7=IF(A1=1,Sheet1!A1,FALSE),采用逻辑关系。不然的话都为文本,系统无法识别。

附件

1(修改) - 副本.xls (27.5 KB)

2016-9-5 09:46, 下载次数: 30

我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 17楼帖子 的帖子

可以用如下代码:
If sheet1.Target.Row = 1 And sheet1.Target.Column = 1
如果你单纯是要Sheet2也随Sheet1表的A1的值变化而变化,可以直接在原来的代码加上(比如): Sheet2.[A1]=Sheet1.[A1]←根据实际需要修改。
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 19楼帖子 的帖子

要不你还是上传附件吧,这样描述,不知要达到怎样的效果。
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 21楼帖子 的帖子

简单修改下,请参考:

附件

1(修改) - 副本 (1).xls (34 KB)

2016-9-6 08:42, 下载次数: 26

我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 23楼帖子 的帖子

客气,互相交流[82]
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 26楼帖子 的帖子

呵呵,你太追求完美了,这样会很累的哦,好吧,再次修改了下。

附件

1(修改) - 副本 (1).xls (34 KB)

2016-9-6 17:34, 下载次数: 27

我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296

回复 28楼帖子 的帖子

不要再虐我了,我本菜鸟一枚。[25]
我熱愛生活,我愛我的家人。
http://150.20.8.135/bbs/viewthread.php?tid=210296
发新话题
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容