我使用Excel 2007在2017年1月1日到2017年12月31日之前通过“NS9”制作带有单元格“S9”的考勤表。我希望如果表单的用户输入日期(1 /在03/2017作为一个例子)在指定的单元格(比如说“B3”)中,除了显示输入日期的一列之外,其他日期的列将隐藏,在这种情况下仅显示0/03的列U.这样可以节省在到达相关日期之前滚动浏览多个列的时间。
我尝试了一些在线发现的VBA代码,但仍然遇到“运行时错误'1004':对象'_ workheet'的方法'范围'失败”消息。以下是我正在使用的代码。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then
Dim the_selection As String
Dim month_in_review As String
the_selection = Sheet2.Range("B3")
Dim Rep As Integer
For Rep = 19 To 383
the_column = GetColumnLetter_ByInteger(Rep)
month_in_review = Sheet2.Range(the_column & "9")
If the_selection = month_in_review Then
Sheet2.Range(the_column & ":" & the_column).EntireColumn.Hidden = False
Else
Sheet2.Range(the_column & ":" & the_column).EntireColumn.Hidden = True
End If
Next Rep
End If
End Sub
下面显示的模块......
Public Function GetColumnLetter_ByInteger(waht_number As Integer) As String
GetColumnLetter_ByInteger = ""
MyColumn_integer = what_number
If MyColumn_integer <= 26 Then
column_letter = Chr(64 + MyColumn_integer)
End If
If MyColumn_integer > 26 Then
column_letter = Chr(Int((MyColumn_integer - 1) / 26) + 64) & Chr(((MyColumn_integer - 1) Mod 26) + 65)
End If
GetColumnLetter_ByInteger = column_letter
End Function
请帮忙......非常感谢!