VBA 在单元格中存储文件名

VBA to store file name in a cell

我正在尝试将文件 name/directory 定位到 excel 中的一个单元格,这是我通过 ms 文件对话框选择的。到目前为止,我已经成功地为一个文件做到了,但是如果我多 select 个文件,它不会按顺序存储所有文件名,而是只存储第一个文件。

 With fd
          .AllowMultiSelect = True
.Filters.Clear
.Filters.Add "All files", "*.*", 1
.Filters.Add "SIG Files", "*.SIG"
.Filters.Add "FLG Files", "*.FLG"
.Filters.Add "TCS Files", "*.TCS"
.Filters.Add "ROU Files", "*.ROU"
.Filters.Add "PTS Files", "*.PTS"
.Filters.Add "QST Files", "*.QST"
.FilterIndex = 1
.Title = "Select SSI Identity File"
.InitialFileName = ""
  If .Show = -1 Then
  ReDim selectedPaths(.SelectedItems.Count)


        For I = 0 To .SelectedItems.Count - 1
        selectedPaths(I) = .SelectedItems(I + 1)


                 lRow = Cells(Rows.Count, 54).End(xlUp).Row

       Z = lRow + 1

           **Range("BA5").Offset(I, 0).Value = selectedPaths(I)**

我想按顺序用文件 names/directories 填充范围 BA5,因为我的 fdbox 允许多个 select 选项。

如果有人能提供帮助,我们将不胜感激。

应该是这样的:

For I = 1 To fd.SelectedItems.Count
    Range("BA" & 4 + I).Value = fd.SelectedItems(I)
Next I

如果要切断目录,在第二行使用instrrev:

Range("BA" & 4 + I).Value = Right(fd.SelectedItems(I), Len(fd.SelectedItems(I)) - InStrRev(fd.SelectedItems(I), "\"))

编辑(在下面发表评论) 如果你想在 BA 列的第一个空闲单元格中添加新文件名,它更简单:

For I = 1 To fd.SelectedItems.Count
    Range("BA" & Cells.Rows.Count).End(xlUp).Offset(1) = fd.SelectedItems(I)
Next I