Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    43

    [VB6 / Word] Chiusura troppo lenta.

    Ciao a tutti.
    Ho scritto una Sub che scrive nelle colonne di una tabella precedentemente creata in un file Word.
    La richiesta di scrittura nelle colonne della tabella potrebbe essere ripetuta più volte e tutto sembra funzionare finchè queste richieste avvengono piuttosto lentamente, ma se due o più richieste avvengono piuttosto rapidamente, l'applicazione si inchioda e lo fa sull'istruzione di ciusura dell'applicazione Word, che comunque è piuttosto lenta (è normale?)

    Il codice è più o meno come segue:

    codice:
    Public Sub Cmd_Write_Click()
        Dim Path_File As String
        Dim My_Appl As Word.Application
        Dim My_Doc As Word.Document
        
        'Apre l'Applicazione
        Set My_Appl = New Word.Application
        
        'Apre il documento con la tabella già incorporata   
        Set My_Doc = My_Appl.Documents.Open(Path_File)
        
        My_Doc.Activate
        My_Appl.Visible = False
        
        'Serie di operazioni sulle colonne della tabella che qui ometto
        
        'Chiude Word dopo aver chiuso e salvato il documento
        My_Doc.Close True
        My_Appl.Quit (False) 
        Set My_Appl = Nothing
    Durante il Debug ho notato che il collo di bottiglia è creato dall'istruzione che ho messo in neretto che chiude l'Applicazione Word. Ho provato ad ometterla, ma ovviamente viene creata un'istanza per ogni nuova richiesta di immissione di dati nella tabella del documento.

    Insomma, se la tolgo, ho un mare di istanze che alla lunga ovviamente non vanno bene, se la lascio, due richieste successive mi bloccano l'applicazione! :master:

    Qualcuno di Voi, avrebbe qualche idea per aiutarmi?
    Vi ringrazio in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    43
    Ho notato che con l'istruzione

    codice:
    Set My_Doc = Nothing
    che prima omettevo, le prestazioni migliorano un pò... ma si potrebbero ancora migliorare?

    Intanto che ci sono vi chiedo una cosa molto semplice ma che non sono riuscito a risolvere:

    Come si controlla se il contenuto di una cella di una tabella è vuota, o meglio, che non abbia alcun carattere?

    Ho provato sia con Range.Words(1), sia con Range.Text, ma il valore di ritorno non riesco a compararlo con nulla



    Ancora grazie,

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.