如果日期等于

时间:2015-07-23 13:05:19

标签: excel-vba vba excel

我需要一些VBA Excel代码的帮助才能格式化电子表格。

我必须运行一个报告,它给我一个excel电子表格,其中发票日期在P列。如果P列中单元格中的发票日期小于或等于60天,我需要删除整行。今天的日期,并且还从今天的日期删除P列中发票日期为4年或更长的任何行。

每次运行报表时,我通常都必须手动执行此操作,因此我希望使用一些VBA代码自动执行此过程。任何人都可以帮我这个。

Dim x As Long
For x = [a1].SpecialCells(xlCellTypeLastCell).row To 1 Step -1
    Debug.Print Cells(x, "P").Value
    If CDate(Cells(x, "P")) > Date - 60 Then
        Cells(x, "P").EntireRow.Delete
         Else
         Exit Sub
    End If
Next x

我得到了上面的代码

1 个答案:

答案 0 :(得分:-1)

Dim LastRow as Integer
Dim row as Integer

LastRow = ActiveSheet.UsedRange.Rows.Count    

For row = 2 To LastRow
    If Cells(row, 16).Value < Date - 59 OR Cells(row, 16).Value > Year(Cells(row, 16)) + 4 Then
        Rows(row).Select
        Application.CutCopyMode = False
        Selection.Delete Shift:=xlUp
    End If
Next row

我或多或少地躺着,并稍微调整一下。如果这对您有用,请告诉我。