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.