2017-03-17 78 views
0

对于excel有一定的经验,但对VBA非常新颖,并寻求一些帮助。我有一个范围(D:AE)包含日期。每列的行数都是可变的,但使用的单元总数不会少于1500个,可能会高达10000个。我正在尝试创建一个宏,它会在距离今天超过30天的时间内找到此范围内的任何日期,然后清除同一单元格的内容。最终结果将是仅在未来30天内的日期。我做了一些相当广泛的搜索,但我的经验极限并没有给我带来太多。任何帮助将不胜感激!VBA搜索范围= TODAY()+ 30并清除内容

回答

0

建立一个For ... Next循环来看看在您的工作表的每一列,像

For C = 1 To ActiveSheet.UsedRange.Columns.Count 

巢另一个这样的循环的第一轮一样,

For R = 2 To ActiveSheet.UsedRange.Rows.Count 

内部在这个第二循环,每个单元格都是ActiveSheet.Cells(R,C),你可以测试和操作它。像,

With ActiveSheet.Cells(R, C) 
    If IsDate(.Value) Then 
     If CDate(.Value) > (Date + 30) Then 
      .Value = "" 
     End If 
    End If 
End With 
+0

这就是我所需要的。非常感谢! – verticalstall