【问题标题】:Hide Rows Based on Date in VBA在VBA中根据日期隐藏行
【发布时间】:2014-02-11 05:28:58
【问题描述】:

我在工作簿中有多个工作表,每天都在 A 列 (A2:A367) 中列出。打开工作簿后,我试图隐藏与当前月份无关的所有行。我不确定是否有办法自动从 Excel 中提取当前日期并调整行。我目前正在编写代码来激活工作簿中的每个工作表,并遍历每一行并隐藏其他月份的行。有没有更有效的方法来循环和隐藏基于月份的行?

“Regionwide”是 8 的第一个工作表。

Sub Macro3()

Sheets("Regionwide").Select
Range("A2").Select

Dim cell As Range
Const Month As String = "2"
'Dim Month As String
'Month = MonthName(2)
 Dim LR As Long, I As Long
 LR = Range("A" & Rows.Count).End(xlUp).Row
 For I = 2 To LR
 If Left(Range("A" & I).Value, 2) <> Month Then
 cell.EntireRow.Hidden = True
   ' Range("AC" & I).Value = "Reinsurance"
 'Else
  '  cell.EntireRow.Hidden = True

  End If
  Next I

 End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以获得今天的月份:

    Dim intMonth As Integer
    intMonth = Month(Now())
    

    您还可以通过以下方式遍历所有工作表:

    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Sheets
      LR = ws.Range("A" & Rows.Count).End(xlUp).Row
      ...
    Next
    

    您无需选择工作表或单元格即可对其执行操作。通过 ActiveWorkbook.Sheets(index).Range(range) 引用它可以加快你的代码速度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多