Drucken einer einzelnen Seite in VBA

Hallo

 

Ich möchte nur das aktive Blatt in vba drucken ? Denn dort werden alle Blätter gedruckt ...

Das würde mir enorm stehen

 

Momentan drucke ich mit diesem: (Teil des Codes)

 

    Set ps = Model.PageSetup
    PS. DruckerPapierGröße = Model_PaperSize
    PS. Ausrichtung = Model_Orientation
    PS. ScaleToFit = Model_ScaleToFit
   
    Modell.PrintDirect

 

Vielen Dank

Sie sollten vor dem Drucken etwas in Ihrer VBA hinzufügen

 

Dim swdoc As SldWorks.ModelDoc2
Dim swSheet als SldWorks.Sheet

Legen Sie swSheet = swdoc fest. GetCurrentSheet (Englisch)

 

Und so sollte es Ihr aktives Blatt drucken

Ich sehe nicht, wie das mein Problem lösen würde, weil wir es nie dem Drucker oder in den Druckeinstellungen sagen. aber ich werde es trotzdem versuchen.

Ich weiß nicht, ob dies Ihr Problem lösen wird. Aber ich persönlich weiß, dass es meine aktive Seite druckt, wenn ich das tue.

 

Auf der anderen Seite bin ich vielleicht ein wenig empfindlich, vielleicht ist es schlecht formuliert von Ihrer Seite... Auf jeden Fall bin ich mir sicher, dass es nicht freiwillig von Ihrer Seite ist. Aber du solltest vorsichtig sein mit dem Ton, den du in deinen Worten verwendest. :)

1 „Gefällt mir“

Oh alle meine Entschuldigungen, ich habe es wirklich nicht so böse gemeint. Es tut mir wirklich leid.

 

Was mein Problem betrifft, so löst Ihre Lösung meinen Fall nicht.

Vielen Dank!

1 „Gefällt mir“

Hallo

Ein Makro ist hier verfügbar:

https://forum.solidworks.com/thread/64218#344104

 

2 „Gefällt mir“

Ich habe es gerade heruntergeladen und konnte diesen Code davon bekommen:

 

  Für i = 0 Bis UBound(vSheetNames)
        Wenn vSheetNames(i) = SheetName, dann
            MsgBox ("Drucken" + Str(i))
            Modell.Erweiterung.Ausdruck2 i + 1, 1, Falsch, "", ""
            Beenden für
        Oder
            MsgBox ("Nicht diese Seite")
        Ende, wenn
    Weiter i

 

aber leider funktioniert es nicht, und das liegt am "pageArray", denn dieser Code funktioniert:

  pageArray(0) = 1
  vPageArray = SeiteArray

  Model.Extension.PrintOut2 vPageArray, 1, False, "", ""

 

Ich verstehe nicht, warum

Anscheinend stattdessen folgendes:

 

            pageArray(0) = i + 1
            pageArray(1) = i + 1
            pageArray(2) = i + 1
            pageArray(3) = i + 1
            vPageArray = SeiteArray

 

Es funktioniert... Danke, ich werde noch ein oder zwei weitere Versuche unternehmen, um das zu bestätigen.

Wenn Sie Ihr vollständiges Makro veröffentlichen können, damit es später von anderen verwendet werden kann, wäre das schön.