Я потратил несколько часов, пытаясь понять, как написать правильный код, чтобы мне не приходилось менять его каждый месяц. Я пытаюсь сделать vlookup из листа предыдущих месяцев. Я нашел сайт, который сказал использовать "& ActiveSheet.Previous.Name &". Когда я использую это, я близко, но это вызывает окно открытия файла. Я выбираю текущий файл, а затем он выбирает лист. В конечном итоге код в ячейке в конечном итоге становится = IFERROR (VLOOKUP (L4, '[De c] De c'! $ L: $ A C, 12, FALSE), "") вместо = IFERROR (ВПР (L4, De c $ L! $ A C 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