2016-09-08 3 views
0

Ich arbeite an einer Tabelle, in der ich alles verfolgen werde, was meine Abteilung 3D druckt. Ich habe 3 Ordner voll mit jeweils einem Teil für jeden Teil, den ich drucke: eine CAD-Datei, eine STL-Datei und einen Job-Ordner; alle enthalten den gleichen Teilenamen, der in eine Zelle in der Tabelle eingegeben und zum Auffinden aller Dateien/Ordner verwendet wird. Ich möchte meine Tabellenkalkulation verlinken lassen, so dass ich einfach eine der drei öffnen kann, indem ich einfach zu dem Teil in meiner Tabelle navigiere.Wie suche ich nach einem Ordner und verlinke seinen Pfad?

Jetzt habe ich den folgenden Code-Abschnitt, der den Namen des bedruckten Teils von Spalte D und findet die passende STL in meinem STL Ordner und dann Hyperlinks es in Spalte U.

For i = 4 To Range("D" & Rows.Count).End(xlUp).Row 
'follow through all entries in column D 

'--STL------------------------------------------------------------------------------------------------------ 
If (Len(Cells(i, 4)) > 1) Then 
    If (Len(Cells(i, 21)) = 0) Then 
     strFile = Dir$(path5w & Cells(i, 4) & "*.stl") 
     If (Len(strFile) > 1) Then 
      Cells(i, 21).Hyperlinks.Add Cells(i, 21), path5 & strFile, TextToDisplay:="STL" 
     Else 
      'No file was found that matches so do nothing 
     End If 
    Else 
    'Already hyperlinked, skip this cell 
    End If 
Else 
'Not a valid Name, do nothing 
End If 
Next 
End Sub 

I nimmt kopierte einfach diesen Codeabschnitt und wechselte den Pfad und schaltete .STL die Erweiterung für meine CAD-Dateien, und es funktioniert gut für beide, aber ich bleibe auf den Job-Ordnern stecken ... Ich habe keine Ahnung, wie zu bekommen Mein Code, um einen Ordner anstelle einer Datei zu finden.

Ich habe versucht, mit FileSystemObjects herumzuspielen, aber ich verstehe nicht vollständig, wie man sie benutzt, und alles, was ich finden kann, ist ein Beispiel, wie man jeden Ordner innerhalb eines Ordners auflistet und nicht wirklich nach einem sucht spezifischer Ordner.

Ich schaute auch auf dieses Beispiel: VBA to find multiple files, aber, wieder, lief ich auf das Problem nicht zu verstehen, wie man dies verwendet, um nach einem Ordner zu suchen, anstatt alle Ordner aufzulisten.

Also um zu helfen, klarer zu sein, werde ich ein Beispiel geben. Sagen wir, ich bearbeite Part123.stl, wenn ich das speichern will, wird es einen Ordner ssys_Part123 erstellen und ich werde das in meinem Ordner namens Job-Ordner speichern. Jetzt möchte ich, dass mein Programm Zelle D4 überprüft, die Part123 sagt, dann zu Job-Ordnern navigieren, den Ordner namens ssys_Part123 finden und diesen Ordner in V4 verlinken.

Ich habe immer noch nicht ein sehr festes Verständnis der Codierung, so dass jede Hilfe immer sehr geschätzt wird.

+1

Es gibt ein zweites (optionales) Argument für die Dir-Funktion, mit der Sie grundsätzlich den "Atrribute" oder Dateityp angeben können. Wenn Sie dies auf 'vbDirectory' setzen, wird explizit nach Ordnern gesucht. Versuchen Sie, einen Hyperlink zu dem Ordner zu erstellen? Oder Dateien im Ordner? – Kyle

+0

Das funktionierte, als ich vbDirectory hinzufügte ... Ich fühle mich so dumm, dass ich diese Optionen nie gefunden habe. –

+0

Kann nicht alles sofort wissen! Froh, dass das funktioniert hat. – Kyle

Antwort

0

Wenn der Ordnername immer ssys_ [PartName] lautet, sollten Sie in der Lage sein, die Zeichenfolgen einfach mit dem Ordner zu verknüpfen, anstatt den Ordnernamen zu suchen.

+0

Das war mein ursprünglicher Plan, das Problem ist, wenn andere Leute als ich Dateien erstellen, fügen sie den Namen zufälligen Unsinn hinzu, also wollte ich vorausplanen und annehmen, dass sie nicht immer genau der Name sind, den ich erwarte. –

Verwandte Themen