首页 > 解决方案 > 上一张表中的 VLOOKUP

问题描述

我花了几个小时试图弄清楚如何编写正确的代码,这样我就不必每个月都更改它。我正在尝试从前几个月的工作表中进行 vlookup。我发现一个网站说使用'" & ActiveSheet.Previous.Name & "'。当我使用它时,我会关闭,但它会触发一个文件打开框。我选择当前文件,然后它让我选择一张纸。最终,单元格中的代码最终变为 =IFERROR(VLOOKUP(L4,'[ Dec ]Dec'!$L:$AC,12,FALSE),"") 而不是 =IFERROR(VLOOKUP(L4,Dec!$ L:$AC,12,FALSE),"")。如何避免必须选择当前文件和工作表?我的代码如下。

您的帮助将不胜感激!

Sub Justification()

Application.ScreenUpdating = False 

Dim lastrow As Long 
Dim i As Integer 

lastrow = Range("E" & Rows.Count).End(xlUp).Row  

Range("J3:J" & lastrow).FormulaR1C1 = "=VLOOKUP(RC[-4],'V:\CORPDATA02\D0003\ISSHARE\Accruals\2020\[Justification.xlsx]sheet1'!C1:C6,6,FALSE)" 
Range("L3:L" & lastrow).FormulaR1C1 = "=RC[-1]&RC[-4]" 
Range("U3:U" & lastrow).FormulaR1C1 = "=RC[-2]-RC[-1]" 
Range("V3:V" & lastrow).FormulaR1C1 = "=IF(SUMIF(C[-14],RC[-14],C[-1])<25000,""UNDER 25K"",""YES"")"

Range("W3:W" & lastrow).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-11],' " & ActiveSheet.Previous.Name & " '!C12:C29,12,FALSE),"""")" 

For Each Cell In Range("Y3:Y" & lastrow) 
If Cell = "0" Then Cell.Clear
Next Cell 

Application.ScreenUpdating = True

End Sub

标签: excelvbavlookup

解决方案


推荐阅读