在下面的代码中,我可以编写一个代码来显示文件夹中的文件名。现在的问题是我应该将它们显示在正确的行中。现在它们以随机顺序显示,这不是目的。
在“A”列中,要搜索的文件名以类似的名称格式PBM12 调用。T5。103 .
要查找的实际文件名以类似的名称格式 1_29_ PBM_12_T5__103 调用。
我必须找到一种解决方案来“仅”比较上面显示的Fat 标记的字母和数字,而没有. 或_
正如您将看到的那样, PBM12T5103在两个名称结构中都返回了。
请不要尝试固定长度计数,因为文件名是动态的并且字母的数量是可变的。比较“A”列(PBM12T5103)的 SUBSTITUTED 长度是比较的关键,但我无法处理建立这种比较。
找到“A”列中的文件名后,在“C”列中,找到的文件的完整文件名必须显示为原始格式1_29_PBM_12_T5__103
当可以制作额外的列来建立比较时,也许可以找到解决方案?
在 Excel 中,我可以找到一个解决方案,但这不会像它应该做的那样自动化。
我制作了 LEN(动态计数),但这仍然不是在所需行中显示完整文件名的解决方案......
希望有人可以帮助我..
Option Explicit
Sub fileNames_in_folder()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Dim fldpath
Dim fld As Object, fil As Object, fso As Object, j As Long
fldpath = "C:\"
On Error Resume Next
Thisworkbook.Sheets("1").Activate
'start count row
j = 11
Set fso = CreateObject("scripting.filesystemobject")
Set fld = fso.getfolder(fldpath)
For Each fil In fld.Files
'here I have to add an IF statement in order to compare the filenames written in column "A" with files from folderPath C:\"
'When the correct files is found it should be displayed in column "C"
If
then
Cells(j, 34).Value = fso.GetBaseName(fil.path)
End If
'count behaviour
j = j + 1
Next
Columns("AH").AutoFit
End Sub