E 'possibile il collegamento ipertestuale a un file con un indirizzo parziale?


0

Ho un elenco di numeri di lavoro per lavorare nella colonna B in un foglio di lavoro in Excel2010, voglio poter fare clic su ciascun valore e aprire la cartella corrispondente sul nostro server (che contiene tutti i tipi di file per il lavoro). Il problema è che le cartelle sono create dagli umani e sono leggibili dall'uomo.

Ad esempio, la colonna B può contenere Job "J9600" e ogni colonna successiva contiene altre informazioni, ma sul server la cartella è denominata "J9600 - Mr Smith - jobtitlehere" e questo nome di piegatura è digitato a mano (quindi incline alla deviazione dagli standard, e errori, e solo cattiva ortografia).

C'è comunque da dire "apri una cartella, in questa posizione, che inizia con J9600"

Risposte:


0

Nessuno che io conosca, almeno non direttamente. Siccome è Excel, potresti provare a scrivere una macro che elenchi la directory del server per le voci con il nome J9600* e se è aperta una sola partita, usa l'explorer o apri una delle cartelle corrispondenti.

Per un modo per aprire una cartella puoi prendere questa risposta: Come aprire una cartella in Windows Explorer da VBA?

Per una soluzione per cercare quella cartella guardare Questo .

Ora la tua colonna con il nome del progetto dovrebbe chiamare una funzione che prende il suo contenuto come parametro e cercalo nella directory del progetto.

Usando le fonti di cui sopra potresti finire con una procedura che potrebbe assomigliare alla seguente che chiameresti dandole il JobID nel qual caso inizierà a cercare JobID* nella directory del server.

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

La soluzione più semplice sarebbe quella di rimuovere i nomi leggibili dall'utente e avere tutte le cartelle nominate solo per numero di lavoro - poi tutti usano il documento excel per trovare le cartelle (una soluzione migliore sarebbe l'accesso, ma anche ottenere le persone al lavoro per usare i fogli di calcolo è abbastanza difficile ) ...
Ian Jackson

Quindi cosa dovrei fare del tuo commento? Che questo è troppo complicato? In questo caso probabilmente sei sfortunato se non riesci a cambiare il processo. Come hai già notato: avere un formato fisso sarebbe il più semplice.
Seth

1
Ciao, non troppo complicato, funzionerebbe bene, aggiungevo fluff alla conversazione su come non avrei bisogno di fare queste cose se la compagnia avesse un sistema adeguato
Ian Jackson

AH OK. Se prendi questo come soluzione, non dimenticare di contrassegnarlo. Anche se sarebbe bello se qualcuno ne uscisse con uno migliore. : D
Seth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.