VBA - 如何将所有csv文件合并到最后一列中添加文件名

问题描述 投票:0回答:1

我的代码:

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
excel vba
1个回答
0
投票
  1. 你在sub之外声明了你的变量。
  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
© www.soinside.com 2019 - 2024. All rights reserved.