Verifique se o trailing \ na string retornou de msoFileDialogFolderPicker, Excel VBA

1

Estou usando o msoFileDialogFolderPicker para retornar um caminho quando um usuário deseja depositar um relatório em uma pasta específica.

Um formulário personalizado (ufSelRepType) aparece na macro nos casos em que o local de salvamento padrão já possui um arquivo de saída ou quando o usuário não deseja salvar no local padrão. O formulário personalizado especifica alguns locais comuns de salvamento de relatórios e oferece a opção de selecionar um local alternativo. Clicando no botão cmdCustom faz o seguinte:

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

End Sub

O código na macro para manipular a saída do formulário é simples:

 strSavePath = ufSelRepType.Tag

Selecionando uma pasta, a string é sempre retornada sem um "\" final. No entanto, se uma raiz da unidade for selecionada (usamos unidades mapeadas para o nosso servidor de arquivos e, embora esse caso possa ser raro, não é um cenário inconcebível), a string retornada termina com um "\".

Como posso verificar o rastreio "\" e lidar com ele?

UPDATE: Por solução abaixo, este é o novo código para o controle de formulário 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
    
por music2myear 13.04.2011 / 18:13

1 resposta

1

Assumindo que strSavePath é apenas uma string, você pode verificar se "\" é o caractere mais à direita:

If Right(strSavePath, 1) = "\" Then
  doSomething()
Else
  doSomethingElse()
End If
    
por 13.04.2011 / 20:50