问题描述
如果“ D”列下的日期小于2020年7月1日,我将具有以下代码来删除行。当我输入StartString7 = 44013
(值1/7/2020)时,此代码可以正常工作。如果我将44013
替换为Worksheets("NavigationPage").Range("E12").Value
,它将不起作用。我不能简单地使用44013
,因为我需要每天对此进行调整。
“ E12”中的公式为 VALUE(DATE(E10,E11,1))
“ E10”和“ E11”是用户手动填写的年份和月份。 (如上图所示)
从“ E12”获得的值应该有问题。但是我不知道如何修改它。非常感谢。
P.S。忽略工作表名称。
Sub DeleteBeforeDate()
Dim c7 As Range,Deleterange7 As Range,Datarange7 As Range
Dim LR7 As Long 'last row
Dim StartString7 As String
'change sheet name as required
With Worksheets("InPayments")
'find last row in range
LR7 = .Cells(.Rows.Count,"D").End(xlUp).Row
'range you are searching
Set Datarange7 = .Range("D2:D" & LR7)
End With
StartString7 = Worksheets("NavigationPage").Range("E12").Value
Datarange7.EntireRow.Hidden = False
For Each c7 In Datarange7.Cells
If c7.Value < StartString7 Then
If Deleterange7 Is nothing Then
Set Deleterange7 = c7
Else
Set Deleterange7 = Union(Deleterange7,c7)
End If
End If
Next c7
'delete all matched rows in one go
If Not Deleterange7 Is nothing Then Deleterange7.EntireRow.Delete
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)