隐藏一年的栏目

我想隐藏所有年份不是最后两年的date列。 为此(我不知道这是否是正确的方法)我一直在做一些研究,因为我对Excel编程一无所知,而且我创build了这个VBA脚本,但它似乎不工作:

Function OcultarFechas(Range) Rg1 = Range ' B2:AA2 Flag = "ok" For Each c1 In Range(Rg1).Cells If Year(c1) <> Year(Date) Then Columns(c1.Column).EntireColumn.Hidden = True Else Flag = "notok" End If If Flag = "notok" Then Exit For Next c1 End Function 

当我打开电子表格时执行脚本会更好,但是现在使用这个代码,我想我需要调用像“= OcultarFechas(B2:AA2)”这样的单元格的函数。

PS。 date是有序的,这就是为什么我find当年退出for循环,并从该列我需要保持他们不隐藏

您不能使用UDF隐藏列。

尝试这样的事情…

 Sub HideColumns() Dim c As Long, lc As Long lc = Cells(2, Columns.Count).End(xlToLeft).Column Columns.Hidden = False For c = 2 To lc If Year(Cells(2, c)) < Year(Date) Then Columns(c).Hidden = True End If Next c End Sub 

上面的代码将findRow2中使用的最后一列,并通过第2列循环到find的最后一列,并检查年份条件并相应地隐藏列。

要在打开工作簿时自动调用此过程,请将以下代码放在ThisWorkbook模块上。

 Private Sub Workbook_Open() Call HideColumns End Sub