Excel精英培训网

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

[已解决]当满足条件时自动隐藏列,只保留最新7天的数据

[复制链接]
发表于 2022-6-21 08:46 | 显示全部楼层 |阅读模式
如何在A,B列不变的情况下,只保留最新的7天数据,其它列自动隐藏
数据每天更新增加,只保留最新的7天数据,其它列自动隐藏


最佳答案
2022-6-21 09:41

請測試看看,謝謝
Sub test()
Dim Arr, j&, xU As Range
Arr = [a1].CurrentRegion
For j = 3 To UBound(Arr, 2)
    If Date - 7 > Arr(1, j) Then
        If xU Is Nothing Then Set xU = Columns(j) Else Set xU = Union(Columns(j), xU)
    End If
Next
If Not xU Is Nothing Then xU.EntireColumn.Hidden = True
End Sub

Desktop.zip

62.26 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-6-21 09:28 | 显示全部楼层
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. Dim a
  3. a = Range("a1").End(xlToRight).Column
  4. If a <= 9 Then
  5.     Columns.Hidden = False
  6.     End
  7. Else
  8.     Columns.Hidden = False
  9.     Range("c:c").Resize(, a - 9).Hidden = True
  10. End If
  11. End Sub
  12. Sub demo()
  13. Columns.Hidden = False
  14. End Sub
复制代码


1655774792018.jpg

demo.zip

70.26 KB, 下载次数: 6

评分

参与人数 1学分 +2 收起 理由
楚雪飞扬 + 2 学习了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2022-6-21 09:39 | 显示全部楼层
回复

使用道具 举报

发表于 2022-6-21 09:41 | 显示全部楼层    本楼为最佳答案   

請測試看看,謝謝
Sub test()
Dim Arr, j&, xU As Range
Arr = [a1].CurrentRegion
For j = 3 To UBound(Arr, 2)
    If Date - 7 > Arr(1, j) Then
        If xU Is Nothing Then Set xU = Columns(j) Else Set xU = Union(Columns(j), xU)
    End If
Next
If Not xU Is Nothing Then xU.EntireColumn.Hidden = True
End Sub

评分

参与人数 1学分 +2 收起 理由
楚雪飞扬 + 2 学习了

查看全部评分

回复

使用道具 举报

发表于 2022-6-21 09:54 | 显示全部楼层
楚雪飞扬 发表于 2022-6-21 09:39
运行报错,帮忙在看一下

这个不用运行,自动运行的。你直接用我附件表格。我刚试了是可以的
回复

使用道具 举报

发表于 2022-6-21 11:22 | 显示全部楼层
学习观摩  膜拜大佬
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 08:45 , Processed in 0.356864 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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