VBA-macro: meerdere regels code aanroepen

Hoi allemaal

Ik ben sinds het begin van het jaar bezig met het ontwerpen van een macro om tekeningen te automatiseren. Afhankelijk van mijn onderdelen hebben ze opties die ik heb ingesteld en sommige van de opties zijn paren van twee opties. Ik kreeg onlangs te horen dat in plaats van kopiëren / plakken voor de laatste, het mogelijk was om soortgelijke oproepen te doen om mijn macro begrijpelijker te maken, maar ik heb absoluut geen idee hoe ik dit moet aanpakken.

Ik geef je als voorbeeld optie nr. 1 die ik als volgt heb ingesteld, bovendien wordt de selectie van elke optie gemaakt op basis van de waarde van "U" voorbeeld: U = 1 maak dan optie nr. 1.

  ElseIf U = 1 Dan

boolstatus = Part.Extension.SelectByID2("Juiste Plan", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Als O < 6 / 1000 dan
Set SkCircle = Part.SketchManager.CreateCircle(-Lengte / 1000 - M + 0.0035, 0, 0, -Lengte / 1000 - M + 0.0035, -0.001, 0)
ElseIf O >= 6 / 1000 Dan
Set SkCircle = Part.SketchManager.CreateCircle(-Lengte / 1000 - M + 0.0035, 0, 0, -Lengte / 1000 - M + 0.0035, -0.001, 0)
Einde als
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Niets, 0)
Part.FeatureManager.FeatureCut Onwaar, Onwaar, Onwaar, 1, 0.04, 0.04, Onwaar, Onwaar, Onwaar, 0.01745329251994, 0.01745329251994, Onwaar, Onwaar, Onwaar, Onwaar, Onwaar, 0, 1, 1
Deel.SelectieManager.EnableContourSelection = 0

De optie die ik korter probeer in te stellen is nr. 5, die optie nr. 1 en nr. 2 samenvoegt.

Bij voorbaat dank voor uw aandacht

1 like

Selecteer case U

Tekstvak 1, 2, 5

als U = 1 OF U = 5 dan

'Wat moet ik doen?

Eindigen als

als U = 2 OF U = 5 dan

'Wat moet ik doen?

Eindigen als

Tekstvak 3

Tekstvak 4

Geval anders

Einde selecteren

1 like

Hallo

Het advies dat je hebt gekregen om je code lichter te maken, is om de "call"-functie te gebruiken

Zoals wat:

In je hoofdmodule

Sub macro 1

als foo = 1

Bel functie 1

als foo = 2

Bel functie 2

als foo = 3

Bel functie 3

Einde sub

Op andere modules

Subfunctie 1

Veel lijn
Veel lijn
Veel lijn
Veel lijn

Einde sub

Subfunctie 2

Veel lijn
Veel lijn
Veel lijn
Veel lijn

Einde sub

Subfunctie 3

Veel lijn
Veel lijn
Veel lijn
Veel lijn

Einde sub

Hierdoor heb je meerdere kleine en leesbare blokjes in plaats van een enkel onleesbaar blokje waar je moeite mee hebt om je kleintjes te vinden.

In uw geval heeft u evenveel functies als opties, elk in hun "Sub" en vervolgens een "Sub" die de tests uitvoert en de bijbehorende functies aanroept.

Ik hoop dat ik je heb geholpen.

een+

Rémi

Heel erg bedankt voor jullie antwoorden, ik zal het nu allemaal in de praktijk brengen

een+