1

Я использую 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 ответ1

1

Предполагая, что strSavePath является просто строкой, вы можете проверить, является ли "\" крайним правым символом:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .