从相邻列中提取年份

我有4列在使用我(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 

date已经提供了,所以我所要做的就是从第I列到第I列,从第K列到第L列,从第2行开始抽取数年到由不同程序预先确定的lastrow

 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 

任何帮助将不胜感激

你正在寻找整个代码还是仅仅是提取年份的声明? 如果您将其集成到现有的macros中,下面的行应该工作。

 activecell.value=Year(activecell.offset(0,-1).value) 

你可以用工作表公式来做到这一点,不需要VBA。

在J栏中,input下面的公式,然后复制下来。

 =YEAR(I:I) 

VBA代码:

所有的行上用VBA来做到这一点,然后试试这个:

 Dim lLastRow As Long lLastRow = Range("I" & ActiveSheet.Rows.Count).End(xlUp).Row Range("J1:J" & lLastRow).Formula = "=IF(ISBLANK(I:I),"""",YEAR(I:I))" 

希望这可以帮助