- Вы объявили свои переменные вне подпрограммы.
- Вы присваивали ячейке формулу
CELL()
вместо значения ячейки. - Вы используете функцию
CELL("filename")
который работает только после сохранения книги, я бы предпочел ThisWorkbook.Name
, если вам нужно только имя, или ThisWorkbook.FullName
, если вы хотите путь с именем.
Sub InsertFileName()
Dim LastRow As Long
Dim LastColumn As Long
Application.ScreenUpdating = False
Dim i As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
For i = 1 To LastRow
LastColumn = ActiveSheet.Cells(i, ActiveSheet.Columns.Count).End(xlToLeft).Column
ActiveSheet.Cells(i, LastColumn + 1).value2 = "=CELL(""filename"")"
'ActiveSheet.Cells(i, LastColumn + 1).value2 = ThisWorkbook.Name 'or ThisWorkbook.FullName
Next i
Application.ScreenUpdating = True
End Sub