VBA - как объединить все CSV-файлы с добавлением имени файла в последнем столбце - PullRequest
0 голосов
/ 21 февраля 2019

Мой код:

Dim LastRow As Long
Dim LastColumn As Long
Sub InsertFileName()
  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) = "=CELL(""filename"")"
  Next i
  Application.ScreenUpdating = True
End Sub

1 Ответ

0 голосов
/ 22 февраля 2019
  1. Вы объявили свои переменные вне подпрограммы.
  2. Вы присваивали ячейке формулу CELL() вместо значения ячейки.
  3. Вы используете функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...