我正在尝试将文件名/目录定位到我在ms文件对话框中选择的excel中的单元格。到目前为止,我已设法为一个文件执行此操作,但如果我多次选择文件,它不会按顺序存储所有文件名,而只是只执行第一个文件。
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)**
由于我的fdbox允许使用多选项,我希望按顺序填充范围BA5和文件名/目录。
感谢是否有人可以提供帮助。
答案 0 :(得分:0)
应该是这样的:
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