Hvordan forhindrer du dialogutskrift når du bruker Excel utskrift metode

stemmer
5

Når jeg bruker utskriften metode for å skrive ut et regneark objekt til en skriver, Utskrift dialogen (viser filnavn, destinasjon skriver, utskrevne sider og en Avbryt-knappen) vises selv om jeg har satt DisplayAlerts = False. Koden nedenfor fungerer i en Excel makro, men det samme skjer hvis jeg bruker denne koden i en VB eller VB.Net program (med referanse endringene som kreves for å bruke Excel objekt).

Public Sub TestPrint()
Dim vSheet As Worksheet

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Set vSheet = ActiveSheet
    vSheet.PrintOut Preview:=False

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub

EDIT: Svaret nedenfor kaster mer lys over dette (at det kan være en Windows dialog og ikke en Excel-dialog), men svarer ikke på spørsmålet mitt. Er det noen som vet hvordan de skal forhindre at den blir vist?

EDIT: Takk for ekstra forskning, Kevin. Det ser veldig mye som dette er hva jeg trenger. Bare ikke sikker på om jeg ønsker å blindt godta API-kode sånn. Har noen andre har noen kunnskap om disse API-kall, og at de gjør hva forfatteren hensikt?

Publisert på 15/09/2008 klokken 19:33
kilden bruker
På andre språk...                            


3 svar

stemmer
1

Når du sier "Utskrift" Dialog, jeg antar at du mener "skriver nå xxx på" dialog i stedet for standard utskriftsdialogen (velg skriver, antall kopier, etc). Tar med eksempelet over og prøve det ut, er at atferden jeg så - "skriver nå ..." ble vist en kort stund og deretter automatisk stengt.

Hva du prøver å styre kan ikke være bundet til Excel, men i stedet være Windows-nivå atferd. Hvis det er kontrollerbar, ville du trenger å a) deaktivere den, b) utføre print, c) re-aktivere. Hvis koden din svikter, er det fare for at dette ikke aktiveres for andre programmer.

EDIT: Prøv denne løsningen: Hvordan hindre dialog utskrift gjør når du bruker Excel utskrift metode . Det synes å beskrive nøyaktig hva du er ute etter.

Svarte 16/09/2008 kl. 04:09
kilden bruker

stemmer
1

API-samtaler i artikkelen knyttet Kevin Haines skjule utskriftsdialogen slik:

  1. Få håndtaket dialogboksen Printing.
  2. Send en melding til vinduet for å fortelle det ikke å tegne
  3. Ugyldig vinduet, som tvinger en opptegning som aldri skjer
  4. Fortell Windows å male vinduet, som får den til å forsvinne.

Det er unyansert å si det mildt.

API-samtaler er trygge, men vil du sannsynligvis vil være sikker på at skjermen oppdatering for dialogboksen Printing er satt til True hvis programmet mislykkes.

Svarte 22/09/2008 kl. 12:17
kilden bruker

stemmer
2

Hvis du ikke ønsker å vise utskrifts dialog, så bare lage en makro test som følger; det vil ikke vise noen print dialog og vil oppdage standardskriver og umiddelbart ut.

sub  test()

 activesheet.printout preview:= false

end sub

Kjør denne makroen, og det vil skrive ut det aktive arket uten å vise utskriftsdialogen.

Svarte 04/10/2012 kl. 14:17
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more