【问题标题】:Excel Macro To Advance DateExcel 宏到提前日期
【发布时间】:2016-11-25 12:54:19
【问题描述】:

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

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

感谢您的帮助,我意识到我对我的问题没有太大帮助。一般来说,我对 VB 脚本和 excel 宏非常陌生。我没有得到如何搜索列本身,因为无论列值是什么我都希望它找到列(可能在整个工作表中搜索一个显示“日期”的单元格?,我只是想添加开始的4年,找不到我需要的功能。这是我从我得到的东西中得到的,似乎这是非常错误的哈。

直到 IsEmpty(ActiveCell)

  Set ThisCell = ActiveCell

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

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

  Loop

【问题讨论】:

标签: vba excel date


【解决方案1】:

你会想要 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

【讨论】:

  • 我在想同样的解决方案,但正在等待他们提供一些代码来显示需要它的地方。
  • 我为您提供了完整的解决方案。你觉得缺少什么?
  • 谢谢,我会调查的。从我正在阅读的内容来看,这意味着必须在宏中说明列值和行值。无论如何让它在一个单元格中搜索“日期”值,然后开始推进它下面的每个单元格的日期,直到单元格为空?这样,日期从哪一列或哪一行开始就无关紧要了?
  • 我在想我可以在工作表中搜索“日期”值,一旦找到,将其设为“ActiveCell”,然后在您的代码中执行 x = ActiveCell.Row + 1 和 theColumnNumberForTheDates = ActiveCell .列
  • 是的,你会想要使用 Range 类的 Find 方法,详细信息在这里:msdn.microsoft.com/en-us/library/office/ff839746.aspx。这个方法网上有各种教程,这里有两个:blog.udemy.com/excel-vba-findozgrid.com/VBA/find-method.htm
猜你喜欢
  • 1970-01-01
  • 2016-12-30
  • 2016-11-07
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
相关资源
最近更新 更多