Wie erstellt man eine String-String-Schleife mit VBA?

Hallo

Ich suche nach einer Möglichkeit, eine Schleife für verschiedene Werte mehrerer String-Variablen  zu erstellen, um die Größe meines Codes zu reduzieren!

Danke für Ihre Hilfe.

Hallo

Ich verstand es nicht ganz.

Wenn Sie eine Schleife erstellen möchten, wenn Sie wissen, wie oft Sie eine Schleife ausführen möchten (z. B. 10), wählen Sie entweder:

- Beispiel 1:

Für i = 1 bis 10

      DEIN CODE

Weiter I

- Beispiel 2:

Mach, während ich 10 <

       DEIN CODE

       i = i + 1

Schleife

- Beispiel 2:

Tun

       DEIN CODE

       i = i + 1

Schleife , während ich 10 <

Wenn Sie jedoch die Zahl nicht kennen und sie Teil einer Sammlung ist, können Sie für jeden ein a verwenden, ein Beispiel hier:

http://help.solidworks.com/2014/English/api/sldworksapi/Get_Components_in_Each_BOM_Table_Row_VB.htm

 

1 „Gefällt mir“

Mit meinem Beispiel, das Sie gut kennen, werden Sie verstehen, was ich meiner Meinung nach tun möchte, in der Tat möchte ich meine Links, meine Namen von Teilen, MEP und Baugruppen (in Fettdruck) durch String-Variablen ersetzen, die ich jedes Mal ändere, wenn die Schleife beginnt, bis ich keinen Textwert mehr habe!  

Sub main()
        
swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.OpenDoc6("xxxxxxxxxxxxx.SLDASM", 2, 0, "", longstatus, longwarnings) 'Öffnen der Quellassembly'
swApp.ActivateDoc2 'Pot Store Set', False, longstatus 'Assembly aktivieren'
Set Part = swApp.ActiveDoc 'Aktivierung'


F1. 'Öffnen des Informationsfensters' anzeigen


Set swAppp = Application.SldWorks 'zurück zur SolidWorks App'
Set swmodel = swAppp.ActiveDoc 'Reaktivierung der Assembly'
bool = swmodel. Extension.RunCommand(SwCommands.swCommands_SaveAs, "") 'Öffnen des Fensters "Speichern unter"
Set Part = swApp.ActiveDoc 'Aktiviere die neue Baugruppe, die im neuen Ordner gespeichert ist'


Dateipfad = swmodel. GetPathName 'Abrufen des Links aus der Assembly'

TitelA = swmodel. GetTitle: 'Namensabruf mit Assemblyerweiterung'
TitleAs = Len(TitleA) 'Verlängern der Verlängerungslänge abrufen'
TitleAn = Left(TitleA, TitleAs - 7) 'Erweiterung löschen'


' ******************************************************************************
' Aufnahme der Stückvorratstöpfe
' ******************************************************************************

Set Part = swApp.ActiveDoc 'Aktivierung'
Set Part = swApp.OpenDoc6("\\xxxxxxxxxxx.sldprt", 1, 0, "", longstatus, longwarnings) 'Öffnen des Teils'
Set Part = swApp.ActiveDoc 'Aktivierung'

swApp.ActivateDoc2 "Pot Tray.sldprt", False, longstatus 'Pot Tray Coin Aktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'

Set swmodel = swApp.ActiveDoc 'MEP-Aktivierung'

TitelPb = swmodel. GetTitle: 'Abrufen des Titels aus dem MEP des Topfspeichers ohne die Erweiterung'

Set Part = swApp.OpenDoc6("xxxxxxxx.SLDDRW", 3, 0, "", longstatus, longwarnings) 'Öffnen Sie das MEP'
Set Part = swApp.ActiveDoc 'Aktivierung'

swApp.ActivateDoc2 "Pots Store - Sheet1", False, longstatus 'MEP-Aktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'

Set swmodel = swApp.ActiveDoc 'Aktivierung für Doc-Informationen'

TitelM = swmodel. GetTitle 'MEP-Titelwiederherstellung ohne Erweiterung'

Set Part = swApp.ActiveDoc 'Aktivierung'

swApp.ActivateDoc2 "pots.sldprt speichern", False, longstatus 'Teilaktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'

Set swAppp = Application.SldWorks 'SOLIDWORKS App aktivieren'
Set swmodel = swAppp.ActiveDoc 'Teil-Aktivierung'
bool = swmodel. Extension.RunCommand(SwCommands.swCommands_SaveAs, "") 'öffnet das Fenster Speichern unter'

Set swmodel = swApp.ActiveDoc 'MEP-Aktivierung'

TitelM = swmodel. GetTitle 'MEP-Titelwiederherstellung ohne Erweiterung'

PFilePath = SWMODEL. GetPathName 'Abrufen der Verknüpfung des Teils mit der Erweiterung'
PsFilePath = Len(PFilePath) 'Abrufen der Länge der Teileverknüpfung mit der Erweiterung'
PnFilePath = Links(PFilePath, PsFilePath - 7) 'Entfernen der Erweiterung'
MFilePath = PnFilePath & ". SLDDRW" 'Erweiterung für MEP-Links hinzugefügt'

TitelP = swmodel. GetTitle: 'Abrufen des Titels des Jar-Lagerraums mit der Erweiterung'
TitlePs = Len(TitleP) 'Verlängerungslänge abrufen'
TitlePn = Links(TitelP, TitelPs - 7) 'Erweiterung löschen'

Set Part = swApp.ActiveDoc 'Aktivierung'
Set Part = Nichts
swApp.CloseDoc TitlePn 'Raum schließen'
Set Part = swApp.ActiveDoc 'Aktivierung'

swApp.ActivateDoc2 "Pot Store - Sheet1", False, longstatus 'MEP-Aktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'

longstatus = Part.SaveAs3(MFilePath, 0, 2) 'MEP-Datensatz'

Set swmodel = swApp.ActiveDoc 'MEP-Aktivierung'
TitelM = swmodel. GetTitle: 'Abrufen des Titels des neuen MEP ohne die Erweiterung'

swApp.CloseDoc TitleM 'MEP schließen'

swApp.ActivateDoc2 TitlePn, False, longstatus 'zurück zum Teil'
Set Part = swApp.ActiveDoc 'Aktivierung'
Set Part = Nichts
swApp.CloseDoc TitlePn 'Raum schließen'
Set Part = swApp.ActiveDoc 'Aktivierung'


swApp.ActivateDoc2 TitleAn, False, longstatus 'zurück zur Generalversammlung (Pot-Store-Assembly)'
Set Part = swApp.ActiveDoc

Set Part = swApp.ActiveDoc
longstatus = Part.SaveAs3(FilePath, 0, 2) 'Allgemeiner Assembly-Datensatz (Pot Store Set)'

Set Part = swApp.ActiveDoc
Set Part = Nichts
swApp.CloseDoc TitleAn 'Schließen der Generalversammlung (Topftablett-Set)'


Ende Sub

Wenn ich es richtig verstanden habe, muss man einfach den Code ersetzen:

Set Part = swApp.OpenDoc6("\\xxxxxxxxxxx.sldprt", 1, 0, "", longstatus, longwarnings) 'Öffnen des Teils'
 

bis:

Set Part = swApp.OpenDoc6(path1, 1, 0, "", longstatus, longwarnings) 'Öffnen Sie das Teil'
»Und so geht es mit den andern weiter

Und deine Schleife wirst du so machen:

für i = 1 bis 3      ' (3, wenn Sie 3 Mal schleifen möchten)

    wenn i = 1 dann

         Pfad 1 = "C:\Test 1\"

    sonst, wenn i = 2 , dann

         Pfad 2 = "C:\Test 2\"

    sonst, wenn i = 3 , dann

         Pfad 3 = "C:\Test 3\"

    Ende, wenn

    Hier ist der Rest des Codes, der in die Schleife aufgenommen werden sollte

Weiter I

    Hier ist der Rest Ihres Codes, der NICHT in die Schleife aufgenommen werden sollte

 

1 „Gefällt mir“

Subtil! Ich werde es so versuchen, vielen Dank :)

1 „Gefällt mir“

Keine Sorge:)

Um übersichtlicher zu sein, sollten Sie einen ausgewählten Fall anstelle von:

    wenn i = 1 dann

         Pfad 1 = "C:\Test 1\"

    sonst, wenn i = 2 , dann

         Pfad 2 = "C:\Test 2\"

    sonst, wenn i = 3 , dann

         Pfad 3 = "C:\Test 3\"

    Ende, wenn

Es wäre:

Fall I auswählen

    Kasten 1

         Pfad 1 = "C:\Test 1\"

    Kasten 2

......

 

Ende Auswahl