É possível fazer o hiperlink para um arquivo com um endereço parcial?

0

Eu tenho uma lista de números de trabalho para o trabalho na coluna B em uma planilha no Excel2010, eu quero ser capaz de clicar em cada valor e abrir a pasta correspondente em nosso servidor (que contém todos os tipos de arquivos para o trabalho). O problema é que as pastas são criadas por seres humanos e são legíveis por humanos.

Por exemplo, a coluna B pode conter Job "J9600" e cada coluna subseqüente contém outras informações, mas no servidor a pasta é chamada "J9600 - Mr Smith - jobtitlehere" e esse nome de pasta é digitado manualmente (tão inclinado a desvios) a partir de padrões, erros e apenas má ortografia).

Existe uma maneira de dizer "abra uma pasta, neste local, que começa com J9600"

    
por Ian Jackson 14.10.2016 / 13:32

1 resposta

0

Nenhum que eu saiba, pelo menos não diretamente. Como é o Excel, você poderia tentar escrever uma macro para ele que lista o diretório do servidor para as entradas com o nome J9600* e se houver apenas uma correspondência, abra-o usando o explorador ou abra qualquer uma das pastas correspondentes.

Para abrir uma pasta, você pode receber esta resposta: Como abrir uma pasta no Windows Explorer do VBA?

Para uma solução para pesquisar essa pasta, veja this .

Agora, sua coluna com o nome do Projeto teria que chamar uma função que considera seu conteúdo como um parâmetro e procurar por isso no diretório do projeto.

Usando as fontes acima, você pode acabar com um procedimento que pode se parecer com o seguinte que você chamaria dando-lhe o JobID, caso em que ele iria começar a procurar JobID* no diretório do servidor.

Sub openServerDirectory(needle As String)
    Dim varDirectory As Variant
    Dim flag As Boolean
    Dim i As Integer
    Dim strDirectory As String

    strDirectory = "\server\directory"
    i = 1
    flag = True
    varDirectory = Dir(strDirectory, vbDirectory)
    needle = needle & "*"

    While flag = True
        If varDirectory = "" Then
            flag = False
        Else
            If varDirectory Like (needle) Then
                Shell "C:\WINDOWS\explorer.exe """ & (strDirectory & varDirectory) & "", vbNormalFocus
            End If

            'returns the next file or directory in the path
            varDirectory = Dir
            i = i + 1
        End If
    Wend
End Sub
    
por 14.10.2016 / 13:52