【发布时间】:2015-08-23 12:58:45
【问题描述】:
我有 4 列在使用 I (File_Date), J(File_Year), K(Resol_Date), L(Resol_Year) 到目前为止,我有以下代码不起作用..
Thisworkbook.Sheets(3).FormulaR1C1 = "=YEAR(RC[-1])"
Range("J2").Select
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[-1]),"""",YEAR(RC[-1]))"
Range("J2").Select
日期已经给出,所以我要做的就是从第 I 列到第 I 列,从第 K 列到第 L 列,从第 2 行到最后一行提取年份,这是由不同的程序预先确定的
Dim lastRow As Long
Dim rng As Range
Set rng = ThisWorkbook.Sheets(2).Cells
lastRow = rng.Find(What:="*", After:=rng.Cells(1), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
任何帮助将不胜感激
【问题讨论】:
-
你试过什么?您需要向我们展示一些示例数据以及您尝试过的东西,然后我们可以提供帮助。
-
你为什么要一个宏/vba,一个非常简单的 Excel 公式就可以完成这项工作?
-
我知道这可以用一个简单的 =year () 公式来完成,但由于整个 File_Date 列被格式化为日期,当我拉一年时,它会提取像“1905”这样的奇怪年份。此外,由于它具有 200 多个文件的重复性,我正在尝试将其自动化。谢谢..
-
我已在我的答案中添加了 VBA 解决方案