我有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
非常感谢任何帮助
答案 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)