Czy jest możliwe hiperłącze do pliku z częściowym adresem?

0

Mam listę numerów zadań do pracy w kolumnie B w arkuszu w Excel2010, chcę móc kliknąć każdą wartość i otworzyć odpowiedni folder na naszym serwerze (który zawiera wszystkie rodzaje plików dla zadania). Problem polega na tym, że foldery są tworzone przez ludzi i są czytelne dla ludzi.

Na przykład kolumna B może zawierać zadanie „J9600”, a każda kolejna kolumna zawiera inne informacje, ale na serwerze folder nazywa się „J9600 - Mr Smith - jobtitlehere”, a nazwa tego folderu jest wpisywana ręcznie (tak podatna na odchylenia od standardów i błędy, a po prostu zła pisownia).

Czy mimo to można powiedzieć „otwórz folder, w tej lokalizacji, który zaczyna się od J9600”

Ian Jackson
źródło

Odpowiedzi:

0

Nic, o czym wiem, przynajmniej nie bezpośrednio. Ponieważ jest to Excel, możesz spróbować napisać makro, które zawiera katalog serwera dla wpisów z nazwą J9600* a jeśli jest tylko jeden mecz, otwórz go za pomocą eksploratora lub otwórz dowolny z pasujących folderów.

Aby otworzyć folder, odpowiedz na to pytanie: Jak otworzyć folder w Eksploratorze Windows z VBA?

Aby znaleźć rozwiązanie do wyszukiwania w folderze, spójrz na to .

Teraz twoja kolumna z nazwą projektu musiałaby wywołać funkcję, która pobiera swoją zawartość jako parametr i szuka tego w katalogu projektu.

Korzystając z powyższych źródeł, możesz skończyć na procedurze, która może wyglądać następująco: zadzwonisz podając JobID, w którym to przypadku zacznie szukać JobID* w katalogu serwera.

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
Seth
źródło
Najprostszym rozwiązaniem byłoby usunięcie czytelnych dla użytkownika nazw i posiadanie wszystkich folderów nazwanych tylko numerem pracy - wtedy wszyscy powinni korzystać z dokumentu excel w celu znalezienia folderów (lepszym rozwiązaniem byłby dostęp, ale nawet zmuszanie ludzi do pracy do korzystania z arkuszy kalkulacyjnych jest wystarczająco trudne) ) ...
Ian Jackson
Co powinienem zrobić z twoim komentarzem? Że to jest zbyt skomplikowane? W takim przypadku prawdopodobnie nie masz szczęścia, jeśli nie zdołasz zmienić procesu. Jak już zauważyłeś: posiadanie stałego formatu byłoby najłatwiejsze.
Seth
1
Cześć, nie niezbyt skomplikowana, to by działało dobrze, dodawałem puch do rozmowy o tym, jak nie musiałbym robić tych rzeczy, gdyby firma miała odpowiedni system
Ian Jackson
AH OK. Jeśli to zrobisz, nie zapomnij zaznaczyć tego. Nawet jeśli byłoby miło, gdyby ktoś pojawił się z lepszym. :RE
Seth