Excel宏来推进日期

时间:2016-07-21 19:12:06

标签: excel vba excel-vba date

我有大量的Excel工作表,每个工作表都有3个excel工作簿选项卡。在最后一个将有大量的数据,但一列将是一个日期列,下面有一堆不同的日期。日期格式为MM / DD / YYYY。我需要将每个日期提前4年。

我想我需要选择正确的工作簿,搜索特定的列,然后循环迭代该列下面的每个值来推进它,但是这一天本身需要保持不变。例如,如果是2017年5月10日,则需要是10/05/2021。任何建议或帮助都会很棒。先感谢您。

感谢您的帮助,我意识到我对我的问题一点都没有帮助。我对VB脚本非常陌生,并且通常都是excel宏。我还没有找到如何搜索列本身,因为无论列值是什么,我都希望找到列(可能会搜索一个表示" Date"通过整个表单的单元格? ,我只是想加入4年的开始,无法找到我需要的功能。这就是我从我得到的东西中得到的东西,看起来这是非常错的哈哈。

直到IsEmpty(ActiveCell)

  Set ThisCell = ActiveCell

    ThisCell = DateAdd("yyyy", 4, ColumnValueHere)

     ' Step down 1 row from present location.
     ActiveCell.Offset(1, 0).Select

  Loop

1 个答案:

答案 0 :(得分:0)

您将需要DateAdd功能

尝试这样的事情:

Sub AddDates()

Dim lastRow as integer
Dim theSheetImWorkingOn as worksheet
Dim theColumnNumberForTheDates as integer

theColumnNumberForTheDates = 5 ' change this to be the column number you want
Set theSheetImWorkingOn = Sheets("Put your sheet name here")

lastRow = theSheetImWorkingOn.Cells(1000000, theColumnNumberForTheDates ).End(xlUp).row

For x = 2 to lastRow ' assuming your data starts on row 2

     theSheetImWorkingOn.Cells(x, theColumnNumberForTheDates) = DateAdd("yyyy", 4, theSheetImWorkingOn.Cells(x, theColumnNumberForTheDates))

Next x

End Sub