让DateAdd正确制定的​​麻烦

时间:2011-11-21 18:01:21

标签: excel vba excel-vba

所以我有两个问题,我似乎无法解开。我根据模板从主工作表运行报表,每个完成的工作表将具有不同的行数。每张成品纸的共同点是两列(一列用于开始日期[列F],另一列用于到期日期[列H])。对于列F中的日期的每一行,我需要在日期中添加60天并将该日期放在列H中。我尝试使用以下变体:

Dim cell As Range 
For Each cell In Selection  
cell.Value = cell.Value + 60
Next cell

我也尝试过使用不同while语句的组合,我将这些语句用于其他的东西,我将值放在一个列的基础上,但是我不能让它们工作。

我遇到的一些问题是:首先,当我设法让它在H列中输入日期时,它总是进入2/29/1900。如果F列中有日期,或者该日期是什么,则无关紧要。其次,当我尝试设置选择的范围时(这是当我尝试与“While”语句结合时),它会在整个范围内粘贴日期编号,而不是仅在列F中粘贴日期的单元格。

如果在F列中有日期,如何让宏只在H列中添加日期?如何才能正确添加60天的日期?

1 个答案:

答案 0 :(得分:4)

Sub Tester()

Dim c As Range, val

    For Each c In ActiveSheet.Range("E2:E100")
        val = c.Value
        If Len(val) > 0 And IsDate(val) Then
            c.Offset(0, 2).Value = val + 60
        End If
    Next c

End Sub