VBA循环遍历单元格并从Excel工作表中的单元格中提取文件名

时间:2016-06-06 14:25:29

标签: excel vba excel-vba

我有一张excel表,在A列的每个单元格中,是源文件夹的路径:

         column A
P:\Desktop\Source\Test1-folder\file1.txt
P:\Desktop\Source\Test1-folder\file2.txt

我想为每个文件只提取文件名(file1.txt),我该怎么办?你能帮帮我吗?

 For Each oFolder In oSourceFolder.SubFolders
   lastcol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
   For Each oFile In oFolder.Files
      If Dir(destinationFolder, 16) = "" Then MkDir (destinationFolder)
      For k = 1 To dercol
          numrows = worksh.Cells(Rows.Count, icol).End(xlUp).Row
          For w = 2 To numrows
         filepath = worksh.Cells(w, icol).Value

但是这个循环遍历文件,而不是单元格。我怎样才能循环细胞?

2 个答案:

答案 0 :(得分:1)

试试这个:

' Get the sheet
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)

' How you will slash it
Dim strSlash As String
strSlash = "\"

' Set the range for your tool
Dim rngFiles As Range
Dim rngCell As Range
Dim lngMaxRow As Long
lngMaxRow = Range("A" & Rows.Count).End(xlUp).Row
Set rngFiles = Range("A1:A" & lngMaxRow)

' Grab it from the rear
For Each rngCell In rngFiles.Cells
    Debug.Print Right(rngCell.Value, Len(rngCell.Value) - InStrRev(rngCell.Value, strSlash))
Next

答案 1 :(得分:0)

如果你想要的只是文件名,你可以用一个简单的工作表公式来完成:

=TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99))