首先发布这里,我对Excel-VBA的世界很新。
我正在尝试自动化一些报告,并遇到了一些障碍。我试图根据2个seprate列中的单元格值隐藏excel工作表上的行。我给出了一个例子如下。 (真实文档在一个给定时间和任何日期最多可包含50个名称。)
对于此示例,我需要隐藏A列中没有值JIM的所有行,并且在B列中的日期比今天的日期更长。(04/05/2014)
A B
JIM 04/05/2014
JIM 04/05/2014
BOB 05/05/2014
BOB 04/05/2014
TED 07/05/2014
TED 04/05/2014
BOB 09/05/2014
JIM 04/05/2014
JIM 11/05/2014
TED 12/05/2014
我现在使用下面的代码,但在添加第二个参数时遇到了一些问题。
Sub Delete_Name_Date()
Dim rng As Range, cell As Range
For Each cell In Range("A1:F15")
If cell.Value = "JIM" Then
cell.EntireRow.Hidden = False
Else: cell.EntireRow.Hidden = True
End If
Next
End Sub
任何帮助都会很棒。
由于
亚当
答案 0 :(得分:1)
试试这个:
Sub Delete_Name_Date()
Dim cell As Range
For Each cell In Range("A1:A15")
With cell
.EntireRow.Hidden = _
(.Value <> "JIM" And CDate(.Offset(, 1).Value) > Date)
End With
Next
End Sub
另外,为了提高可靠性,我建议您使用ThisWorkbook.Sheets("SheetName").Range("A1:A15")
代替Range("A1:A15")