VBA帮助-如果一个单元格包含特定值而另一个单元格具有日期?而不是另一个单元格-删除整行

时间:2018-11-28 17:18:11

标签: excel vba

我正在处理一个电子表格,该电子表格具有需要基于三个不同单元格删除的数据。这是我的目标:

如果A1 = 31 AND B1包含的日期大于C1中的日期,请删除整行。我需要遍历整个数据集并检查每一行。我将其删除(如果A1 = 31)并在工作表中循环,但似乎无法添加日期组件。

这是我的编码。由于通常是复制和粘贴,因此可能有点混乱。我不是一个非常有经验的编码人员,只要能正常工作,我也不在乎它的外观。我也不使用海量数据集,因此速度不是问题。

Sub Remove_Future_Dates()
    Dim Firstrow As Long
    Dim LastRow As Long
    Dim Lrow As Long
    Dim CalcMode As Long
    Dim ViewMode As Long

Firstrow = ThisWorkbook.Worksheets(2).UsedRange.Cells(1).Row
LastRow = ThisWorkbook.Worksheets(2).Cells(ThisWorkbook.Worksheets(2).Rows.Count, "A").End(xlUp).Row

    With Application
        CalcMode = .Calculation
        .Calculation = xlCalculationManual
        '.ScreenUpdating = False
    End With
    With ActiveSheet
        .Select
        Firstrow = .UsedRange.Cells(1).Row
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        For Lrow = LastRow To Firstrow Step -1

            With .Cells(Lrow, "A")

                If Not IsError(.Value) Then

                    If .Value = "31" Then .EntireRow.Delete
                End If
                End With

        Next Lrow

    End With

End Sub

1 个答案:

答案 0 :(得分:0)

仍然不清楚

这还不是工作代码!

如果不打算在其他工作表上运行此代码,则应像使用Worksheets(2)一样将ActiveSheet更改为索引号。最好使用工作表名称,但最好使用代码名称。

您将必须定义我使用的“ OtherWorksheet”名称(或索引)并调整其列和行。只有在代码正常工作后,才能取消注释注释的部分。

如果您提供所有涉及的工作表的名称或索引以及确切的“ 3序列”数据,例如,在Sheet1,工作表(1),工作表(“ Master”)或ActiveSheet上为A1,B1,在Sheet3,工作表(3)或工作表(“从属”)上为C2。

int