Vba Dir两次引用同一个文件

Vba Dir两次引用同一个文件,vba,excel,Vba,Excel,我正在使用这个代码 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.Val

我正在使用这个代码

 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
sFile=Dir(sFold&“*.xls*”)
在sFile“”MsgBox(sFile)时执行
ext=“.”+右$(sFile,Len(sFile)-InStrRev(sFile,“.”)
sFile=替换(sFile,ext,“”)
名称sFold+sFile+ext为sFold+tbPrefiks4。值+sFile+
tbSufiks4.值+外部
sFile=Dir
环
为了重命名目录中的所有文件,但在某些情况下,Dir似乎返回在前一次迭代中更改的文件/它重命名目录中的所有文件,然后返回重命名第一个文件/。这个问题有解决办法吗


示例:我有3个文件1.xlsx、2.xlsx、3.xlsx,并且想给它们添加一个前缀和sufix,所以它将其重命名为A_1_W.xlsx、A_2_W.xlsx和A_3_W.xlsx,但随后返回到第一个文件并将其更改为A_1_W.xlsx,仅此而已。奇怪的是,如果没有“u”,它就不会发生。

尝试使用两个不同的周期:第一个是累积文件名列表(如已存在),第二个是根据列表执行文件重命名。