2016-04-27 58 views
0

我的宏创建名为year.number.description(2016.185.Hello)的文件夹。调用shell - 只知道文件名的一部分

的问题是,这个名称可以改变,因此,例如,几天之后,有人重命名为2016.185.Hi

在相同的宏没有打开该文件夹的选项。

我认为添加“。*”可以工作,但似乎没有。

Private Sub cmdNumero_Click() 

Dim Carpeta As String 
Año = Me.txtAny.Value 
Numero = Me.txtNumero.Value 

Carpeta = "C:\Folder1\Folder2" & "\" & Año & "." & Numero & ".*" 

Call Shell("explorer.exe " & Carpeta, vbNormalFocus) 

End Sub 

感谢您的关注

+0

你想让用户输入描述吗? – LiamH

+0

对不起,对于最近的答复LiamH, 不,它只是一个按钮,应该打开该文件夹,用户可能不知道确切的描述。 感谢您的时间 – Ignasis

+0

任何帮助将不胜感激,谢谢 – Ignasis

回答

0

你可以使用一个辅助功能,让你的实际文件夹路径..类似以下内容:

Function GetSubFolderByPartial(sRootPath As String, sSub As String) As String 
    Dim oFso As Object 
    Dim oTopFolder As Object 
    Dim oSubs As Object 
    Dim oFolder As Object 

    Set oFso = CreateObject("Scripting.FileSystemObject") 
    Set oTopFolder = oFso.GetFolder(sRootPath) 
    Set oSubs = oTopFolder.SubFolders 
    For Each oFolder In oSubs 
     If oFolder.Name Like sSub & "*" Then 
      GetSubFolderByPartial = oFolder.Path 
      Set oFso = Nothing 
      Exit Function 
     End If 
    Next 
End Function 

所以,你可以简单地调用它是这样的:

Carpeta = GetSubFolderByPartial("C:\Folder1\Folder2", Año & "." & Numero & ".") 
If Len(Carpeta) > 0 Then 
    Call Shell("explorer.exe " & Carpeta, vbNormalFocus) 
End If 

希望能帮到你

+0

完美!感谢GeniuS BraiN! – Ignasis