在进行程序的下一步之前,我正在检查以确保我的代码能够看到我的文件。这是我的代码,但它始终显示为不存在的路径。我做错了吗?
Sub NewNameiLoop()
Dim i As Double
Dim NameStr As String
Dim NewNamePath As String
NameStr = Renamer.New_Name.Text
NewNamePath = Renamer.Path_Text.Text & "\" + NameStr & "-" & Right("00" & i, 3) & ".ipt"
Do While i < 99 'Counts with the file name up to -099
i = i + 1
If vbOK Then
MsgBox (Renamer.Path_Text.Text & "\" + NameStr & "-" & Right("00" & i, 3))
If Dir(NewNamePath) <> "" Then
MsgBox "Path Exists."
Else: MsgBox "Path does not exist."
End If
Else: Exit Sub
End If
Loop
End Sub
其他信息:
此代码位于子NewNameiLoop中的NewNameLoop模块中。
它所采用的形式称为Renamer。当用户单击“应用”以重命名某些文件时,表单将调用NewNameiLoop。重命名后,他们调用此代码来检查文件是否存在。
显示的MsgBox包含完整,正确的路径。
这是在Autodesk Inventor中,而不是Excel中!到目前为止,编码几乎是一样的。没有奇怪的怪癖或任何东西。
正在发生的事情的JPEG。如下所述,我能够访问C:\和C:中的东西。我程序的第一部分创建了一个全新的文件夹,并将不同文件夹的内容复制到其中。之后,它将转到原始文件夹并重命名所有文件。那么这是否意味着它确实是一个编码问题?似乎没有人知道。
答案 0 :(得分:1)
是的,显然你不能在那个文件夹上做'Dir'。但您可以使用FileSystemObject。 将项目引用添加到“Microsoft Scripting Runtime” 然后采用以下方法:
Dim oFSO As FileSystemObject
Set oFSO = New FileSystemObject
If oFSO.FileExists(NewNamePath) Then
Debug.Print "Found it"
Else
Debug.Print "Not Found"
End If
Set oFSO = Nothing
答案 1 :(得分:1)
如果出现以下情况,Dir将不返回任何内容:
1).ipt文件不存在或文件名与您编码的文件名不同
2)无法访问文件夹
如果您不关心文件名,我建议将NewNamepath保留为Renamer.Path_Text.Text&amp; &#34; \&#34;并在此路径中搜索您要查找的文件