VBA向右移动一个单元格并在每次运行宏时放置当前日期

时间:2015-04-07 23:33:10

标签: vba excel-vba excel

我正在尝试编写一个代码,当每周运行宏时,将日期置于B5:J5范围内9周。我当前的代码是添加我想要的日期,在右边,我只是无法弄清楚如何使它在每次运行宏时保持移动1个单元格。有人能指出我正确的方向吗?

Sub addDate()
    Dim r As Range
    Set r = Worksheets("Project LOE").Range("B5:J5")

    For Each cell In r.Cells
        If cell.Value <> "" Then
            r.Offset(0, 1).Value = Date
        End If
        r.Offset(0, 2).Value = ""
    Next
End Sub

**编辑

B5列有昨天的日期,当我运行宏时,我希望它今天添加(日期宏运行)到下一个单元格,C5然后是D5,依此类推。我没有“样本”数据,因为字段是空白的,下面就是我期待的日期

                 B5         C5         D5               E5
               4/6/2015   4/7/2015  "next run date"   "next run date"

F5自动化
SLA
运行手册
安全Runbook

1 个答案:

答案 0 :(得分:1)

这部分是静态的

Set r = Worksheets("Project LOE").Range("B5:J5")

所以你需要让它像以下一样动态:

With Worksheets("Project LOE")
    Dim lc As Long
    lc = .Cells(5, .Columns.Count).End(xlToLeft).Column + 1
    Set r = .Cells(5, lc).Resize(, 9)
End With

编辑1:如果我了解您正在尝试正确执行的操作,您似乎只需要这样做。

With Worksheets("Project LOE")
    .Cells(5, .Columns.Count).End(xlToLeft).Offset(0, 1) = Date
End With

请注意,它始终会在B5上开始填充日期。