我正在处理一个电子表格,该电子表格具有需要基于三个不同单元格删除的数据。这是我的目标:
如果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
答案 0 :(得分:0)
如果不打算在其他工作表上运行此代码,则应像使用Worksheets(2)一样将ActiveSheet更改为索引号。最好使用工作表名称,但最好使用代码名称。
您将必须定义我使用的“ OtherWorksheet”名称(或索引)并调整其列和行。只有在代码正常工作后,才能取消注释注释的部分。
如果您提供所有涉及的工作表的名称或索引以及确切的“ 3序列”数据,例如,在Sheet1,工作表(1),工作表(“ Master”)或ActiveSheet上为A1,B1,在Sheet3,工作表(3)或工作表(“从属”)上为C2。
int