检查 msoFileDialogFolderPicker、Excel VBA 返回的字符串中的尾随 \

检查 msoFileDialogFolderPicker、Excel VBA 返回的字符串中的尾随 \

当用户想要将报告存放在特定文件夹中时,我使用 msoFileDialogFolderPicker 返回路径。

如果默认保存位置已经有输出文件或用户不希望保存到默认位置,则自定义表单 (ufSelRepType) 会显示在宏中。自定义表单指定了一些常用的报告保存位置,并提供了选择备用位置的选项。单击按钮 cmdCustom 会执行以下操作:

Private Sub cmdCustom_Click()
    Application.FileDialog(msoFileDialogFolderPicker).Show
    Me.Tag = CurDir
    Me.Hide

End Sub

宏中处理表单输出的代码很简单:

 strSavePath = ufSelRepType.Tag

选择文件夹时,返回的字符串始终不带尾随的“\”。但是,如果选择了驱动器根目录(我们使用映射到文件服务器的驱动器,因此尽管这种情况可能很少见,但并非不可想象),则返回的字符串将以“\”结尾。

我该如何检查尾随的“\”并处理它?

更新:根据以下解决方案,这是表单控件 cmdCustom 的新代码:

Private Sub cmdCustom_Click()
    Dim strFolderPath As String

    'Getting save folder
    Application.FileDialog(msoFileDialogFolderPicker).Show
    strFolderPath = CurDir

    'Checking that path ends in \
    If Right(strFolderPath, 1) = "\" Then
        GoTo Complete
    Else:
        strFolderPath = strFolderPath & "\"
        GoTo Complete
    End If
Exit Sub

Complete:
    Me.Tag = strFolderPath
    Me.Hide
Exit Sub

End Sub

答案1

假设这strSavePath只是一个字符串,那么您可以检查是否"\"是最右边的字符:

If Right(strSavePath, 1) = "\" Then
  doSomething()
Else
  doSomethingElse()
End If

相关内容