Udskrivning alt eller intet

05/30/2010 by admin

Karen er på udkig efter en måde at udskrive en hel projektmappe, selvom en bruger vælger at udskrive et enkelt regneark. Med andre ord, er hun på udkig efter en måde at udskrive enten hele projektmappen, eller slet ingenting, der ikke bør være "i mellem" muligheder.

Den eneste måde at håndtere dette er gennem anvendelse af en makro. VBA kan du oprette makroer, der er indledt, når visse begivenheder forekommer. En af de begivenheder, der kan udløse makroer er "print" begivenhed. Når nogen spørger til udskrivning, eller vælger at se en udskrift er BeforePrint tilfælde af Workbook objektet udløses. Du kan oprette din egen makro, der udføres, når hændelsen udløses.

Private Sub Workbook_BeforePrint (Annuller Som Boolean)
Dim SHT som Variant
Dim bPreview Som Boolean
Dim iSvar As Integer
Ved fejl GoTo ErrHandler

iSvar = MsgBox (prompt: = "Vil du Print Preview", _
Knapper: = vbYesNoCancel, Titel: "preview" =)

Vælg Case iSvar
Case vbYes
bPreview = True
Case vbNo
bPreview = false
Case Else
GoTo ExitHandler
End Select
Application.EnableEvents = False
For hver SHT i ark
Hvis sht.Visible Derefter
sht.PrintOut Preview: = bPreview
End hvis
Næste

ExitHandler:
Application.EnableEvents = True
Cancel = True
Exit Sub

ErrHandler:
MsgBox Err.Description
Genoptag ExitHandler
End Sub

Når Excel gør sig klar til at udskrive, eller når udskrift anvendes, skal den BeforePrint begivenhed udløses, og denne makro kører. Makroen først spørger brugeren, om han eller hun ønsker at gøre en udskrift. A Vælg Case struktur bruges til at indstille bPreview variable baseret på besvarelsen af ​​spørgsmålet. Fastsættelsen af ​​bPreview derefter styrer hvad der sker.

Hvis brugeren klikkede på Annuller, når du bliver spurgt om forpremiere, så makroen forlades, og udskrivningen annulleres. Ellers er hvert regneark i projektmappen undersøgt til enten udskrive eller forhåndsvisning. Hvis regnearket er synlig, udskrives, og Preview ejendommen er sat lig med bPreview (True betyder, at regnearket er fremvist, Falsk betyder det faktisk udskrives).

Bemærk, at makroen sætter EnableEvents ejendom til False. Dette gøres, så ingen andre begivenheder kan udløse under udskrivning eller visning. Hvis EnableEvents er tilbage "på", så hver gang PrintOut metode anvendes, er hele BeforePrint begivenheden igen udløses-brugeren ville ende i en endeløs løkke, hvis håndtering omstændigheder ikke var slået fra.

Bemærk også, at en af ​​de sidste ting til at ske, før du afslutter makroen er, at Cancel ejendommen er sat til true. Dette gøres således at den oprindelige udskrive eller udskrift anmodning, der genererede BeforePrint begivenheden er annulleret. Der er jo ingen grund til at fuldføre denne anmodning, og makroen gjorde alt print håndtering for brugeren.

Der er en advarsel, selvfølgelig, at bruge denne metode til udskrivning: Hvis makroer ikke er aktiveret, vil føreren ikke køre, og brugeren kan udskrive som ønsket. (Holding Shift mens du åbner projektmappen deaktiverer makroer og brugeren fleste gange er spurgt, om de vil aktivere makroer.) Andre spørgsmål af ExcelTips har drøftet dette faktum.

ExcelTips er din kilde til omkostningseffektiv Microsoft Excel træning. Dette tip (3329) gælder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finde en version af dette tip til båndet grænseflade Excel (Excel 2007 og nyere) her: Udskrivning All or Nothing.


© 2019 - zajacperrone.com| Contact us: webmaster# zajacperrone.com