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
我正在尝试将文件 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