Dir指向相同的文件两次

我正在使用这个代码

sFile = Dir(sFold & "*.xls*") Do While sFile <> "" MsgBox (sFile) ext = "." + Right$(sFile, Len(sFile) - InStrRev(sFile, ".")) sFile = Replace(sFile, ext, "") Name sFold + sFile + ext As sFold + tbPrefiks4.Value + sFile + tbSufiks4.Value + ext sFile = Dir Loop 

为了重命名目录中的所有文件,但似乎在某些情况下,Dir返回在前一次迭代中更改过的文件/它重命名目录中的所有文件,然后返回重命名第一个/。 有没有解决这个问题的方法?

例如:我有3个文件1.xlsx,2.xlsx,3.xlsx,并希望将A_前缀和_W sufix添加到它们,因此将其重命名为A_1_W.xlsx,A_2_W.xlsx和A_3_W.xlsx,到第一个,并将其更改为A_A_1_W_W.xlsx,这就是所有。 奇怪的是,没有“_”它不会发生。