Drukowanie pojedynczej strony w języku VBA

Witam

 

Chciałbym wydrukować tylko aktywny arkusz w vba ? Ponieważ tam drukuje wszystkie arkusze ...

To by mi bardzo odpowiadało

 

Obecnie drukuję z tym: (Część kodu)

 

    Ustaw ps = Model.PageSetup
    PS. PrinterPaperSize = Model_PaperSize
    PS. Orientacja = Model_Orientation
    PS. ScaleToFit = Model_ScaleToFit
   
    Model.PrintDirect

 

Dziękuję

Powinieneś dodać gdzieś w swoim VBA przed czynnością drukowania

 

Przyciemnij swdoc jako SldWorks.ModelDoc2
Przyciemnij swSheet jako SldWorks.Sheet

Ustaw swSheet = swdoc. PobieranieBieżącego arkusza

 

I tak powinien wydrukować twój aktywny arkusz

Nie widzę, jak to rozwiązałoby mój problem, ponieważ nigdy nie mówimy o tym drukarce ani w ustawieniach drukowania. ale i tak spróbuję.

Nie wiem, czy to rozwiąże Twój problem. Ale osobiście wiem, że drukuje moją aktywną stronę, kiedy to robię.

 

Z drugiej strony, może jestem trochę drażliwy, może to źle sformułowane z Twojej strony... W każdym razie jestem pewien, że nie jest to dobrowolne z twojej strony. Powinieneś jednak uważać na ton, którego używasz w swoich słowach. :)

1 polubienie

Och, przepraszam, naprawdę nie miałem złych intencji. Naprawdę mi przykro.

 

Jeśli chodzi o mój problem, twoje rozwiązanie nie rozwiązuje mojego przypadku.

Dziękuję!

1 polubienie

Witam

Makro jest dostępne tutaj:

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

 

2 polubienia

Właśnie go pobrałem i udało mi się uzyskać z niego ten kod:

 

  Dla i = 0 Do UBound(vSheetNames)
        Jeśli vSheetNames(i) = SheetName, to
            MsgBox ("Drukuj" + Str(i))
            Model.Extension.PrintOut2 i + 1, 1, False, "", ""
            Wyjdź dla
        Inaczej
            MsgBox ("Nie ta strona")
        Zakończ jeżeli:
    Dalej i

 

ale niestety to nie działa, a to z powodu "pageArray", ponieważ ten kod działa:

  pageArray(0) = 1
  vPageArray = pageArray

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

 

Nie rozumiem dlaczego

Najwyraźniej umieszczając to zamiast:

 

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

 

To działa... Dziękuję, zrobię jeszcze jedną-dwie próby, aby potwierdzić.

Jeśli możesz opublikować swoje pełne makro, aby mogli z niego później korzystać inni, byłoby miło.