我正在运行一个报告,其中有多个列,用于比较整个会计年度的数字。例如,7月至8月,8月至9月,等等。不幸的是,当我手动执行此操作时,我必须取消隐藏所有列,并重新隐藏未完成的列。我正在自动执行此报告。此时,我所有可见的列。由于处于会计年度的中间,我的报告将在所需数据的左侧和右侧都包含列。我正在尝试隐藏这些不需要的列。
我创建了一个包含JAN,FEB,MAR等的参考行(第1行),仅供我的代码参考,因为我已经创建了一个检测这些条目的用户窗体。
对于本月我需要的数据,我选择了引用的单元格并将其偏移一个,以获取第一列需要隐藏的列。如何在脚本中选择从选择的列到A列的所有列?以下是我所在位置的代码:
With Worksheets("ACD")
For counter = 1 To 200
Set curcell = Worksheets("ACD").Cells(1, counter)
If curcell.Value = FormMonth Then
curcell.Offset(0, -1).EntireColumn.Select
End If
Next counter
End With
感谢您的帮助!
答案 0 :(得分:1)
以下是根据您的情况如何隐藏多列的示例:
Option Explicit
Public Sub HideMonthColumns()
Dim workingDate As Date 'filled in from your form?
workingDate = #10/1/2018# 'set for testing here
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("ACD")
Dim lastCol As Long
Dim workingCol As Long
Dim i As Long
With ws
lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = 1 To lastCol
If .Cells(1, i) = workingDate Then
workingCol = i
Exit For
End If
Next i
'--- hide all the columns to the left and right of the working column
.Range(.Cells(1, 1), .Cells(1, workingCol - 1)).EntireColumn.Hidden = True
'--- ... and hide all the columns to the right, checking for the edge
If (workingCol + 9) < lastCol Then
.Range(.Cells(1, workingCol + 9), _
.Cells(1, lastCol)).EntireColumn.Hidden = True
End If
End With
End Sub