从相邻列中提取年份

时间:2015-06-08 21:49:46

标签: excel vba excel-vba extract

我有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

已经给出了日期所以我所要做的就是从第一列到第一列提取年份,从第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

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

您可以使用工作表公式执行此操作,无需VBA。

在J栏中,输入以下公式,然后复制。

=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))"

希望这会有所帮助

答案 1 :(得分:0)

您是在寻找整个代码还是只是提取年份的声明?如果将其集成到现有宏中,则以下行应该有效。

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