DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 141762 - Ultima modifica: venerdì 19 gennaio 2007 - Revisione: 3.4

 

In questa pagina

Sommario

Quando si creano macro o applicazioni in Visual Basic, Applications Edition, è spesso necessario eseguire più volte una sezione di codice. Visual Basic, Applications Edition fornisce diversi metodi con cui ripetere o "ciclo", una sezione di codice.

Viene fornito codice di esempio viene illustrato l'utilizzo dei vari ciclo strutture e gli algoritmi disponibili in Visual Basic, Applications Edition.

Informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Questo include, ma non è limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. Questo articolo si presuppone che conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Tecnici del supporto Microsoft possono spiegare la funzionalità di una particolare procedura, ma in nessun sono caso a modificare questi esempi per fornire funzionalità aggiuntive o creare procedure per soddisfare specifiche esigenze. Decidere quale struttura di ciclo da utilizzare, esistono alcune considerazioni da tenere presente. Ad esempio:
È possibile sapere? esattamente il numero di volte che si desidera scorrere in ciclo il codice

In caso affermativo, quanti?

In caso contrario, è presente una condizione specifica in cui desidera che la macro per uscire dal ciclo? Se il ciclo è condizionale, È possibile verificare la condizione prima o dopo il codice viene eseguito?

Routine di Visual Basic di esempio

L'esempio riportato di seguito illustra diverse strutture di ciclica disponibili in Visual Basic, Applications Edition. Seleziona intervallo di celle o se non diversamente specificato, gli esempi presuppongono una cella. Alcuni altri aspetti da notare:
  • In ogni esempio, la funzione di casella di messaggio ( MsgBox ) viene utilizzata per visualizzare le informazioni. In questi esempi, ogni volta che si verifica di una funzione MsgBox si verifica, è in cui è necessario immettere il codice venga ripetuto a ogni iterazione del ciclo.
  • Parte i commenti nel codice descritti metodi alternativi per eseguire una determinata attività o per eseguire diverse operazioni con un codice simile.
  • Il simbolo della tilde (~) utilizzato all'interno di alcuni dei commenti deve essere sostituito con il nome di oggetto indicato [oggetto racchiuso tra virgolette, ad esempio worksheets("sheet1")] o numero di indice dell'oggetto.

For... Each... Next

In questo esempio viene utilizzata una for ... Each ... istruzione Next , eseguire un ciclo tra tutte le celle di un intervallo selezionato (i commenti, Mostra un metodo alternativo):
   ' To show the contents of each cell in a selection or specific range.
   Sub for_each_demo()

      ' Or, use "In Worksheet(~).Range(~)" to specify a specific range.
      For Each cell In Selection

         ' Displays cell contents in message box.
         MsgBox cell.Value

         ' Reset cell to next object.
      Next
   End Sub
				

<variable>Per <variabile> = <n1> per <n2>

' This example loops through the code a specified number of times.
   Sub for_demo()

      ' Sets x to 1, adds 1 to x until x = 5, loops 5 times.
      For x = 1 To 5 Step 1

         ' Displays value of x in msgbox.
         MsgBox x

         ' Returns to top of loop 4 times.
      Next
   End Sub
				

Do.... Until con test all'iniziale del ciclo

In questo esempio utilizza un ... Until ciclo "scorrere" in una colonna di celle fino a raggiunta la prima cella vuota. Poiché la macro esegue il test all'inizio del ciclo, se la prima cella è vuota, il codice all'interno del ciclo non verrà eseguito.
   ' Performs Do loop, testing at top of loop.
   ' Loops until empty cell is reached.
   ' Note that you can also use a Do While Not IsEmpty(ActiveCell) loop.

   Sub test_before_do_loop()

      ' Test contents of active cell; if active cell is empty, exit loop.
      Do Until IsEmpty(ActiveCell)

         ' Displays cell contents in message box.
         MsgBox ActiveCell.Value

         ' Step down 1 row to the next cell.
         ActiveCell.Offset(1, 0).Select

        ' Return to top of loop.
      Loop
   End Sub
				

Do.... Until con test alla fine del ciclo

In questo esempio utilizza anche un ciclo Do , ma verifica nella parte inferiore del ciclo. La prima riga della macro verifica la prima cella. Senza la prima riga di codice per verificare la cella iniziale, il codice verrebbe eseguito almeno una volta, perché il ciclo di test nella parte inferiore.
   ' Performs Do loop, testing at bottom of loop.

   Sub test_after_do_loop()

      ' Test to see if first cell is empty.
      If IsEmpty(ActiveCell) Then Exit Sub

         ' Begin loop.
         Do

            ' Displays cell contents in message box.
            MsgBox ActiveCell.Value

            ' Steps down one row to the next cell.
            ActiveCell.Offset(1, 0).Select

            ' Test contents of active cell; if empty, exit loop
            ' or Loop While Not IsEmpty(ActiveCell).

         Loop Until IsEmpty(ActiveCell)
      End Sub
				
attenzione : non diramazione nel corpo di un While ... Wend ciclo senza eseguire l'istruzione While . In questo modo potrebbe determinare errori in fase di esecuzione o di altri problemi che sono difficili da individuare.

L' azione ... istruzione loop consente di eseguire il ciclo in modo più flessibile e strutturato. Il While ... Wend ciclo è inclusa in Visual Basic per applicazioni per garantire la compatibilità con le versioni precedenti.

While... Wend ciclo

Nota : il While ... Wend ciclo è inclusa in Visual Basic per applicazioni per garantire la compatibilità con le versioni precedenti.

In questo esempio viene utilizzato un While ... Wend ciclo. Questo ciclo si verifica all'inizio del ciclo di.
    ' Performs While loop, testing at top of the loop.
   Sub While_loop_demo()

      ' Sets condition of loop, while active cell is not empty.
      While Not IsEmpty(ActiveCell)

         ' Displays cell contents in message box.
         MsgBox ActiveCell.Value

         ' Step down one row to the next cell.
         ActiveCell.Offset(1, 0).Select

      ' End While loop.
      Wend
   End Sub
				

If... ThenCiclo di GoTo

In questo esempio crea un ciclo utilizzando "<condition> Se <condizione> Then GoTo etichetta di riga > "struttura. Questa struttura viene verificata alla fine del ciclo.
     Sub loop_using_goto()

      ' Test to see if first cell is empty.
      If IsEmpty(ActiveCell) Then Exit Sub

      ' Line label indicating top of loop.
   top:

      ' Displays cell contents in message box.
      MsgBox ActiveCell.Value

      ' Step down one row to the next cell.
      ActiveCell.Offset(1, 0).Select

      ' Test to see if new cell is empty.
      If Not IsEmpty(ActiveCell) Then GoTo top

   End Sub
				

Riferimenti

Per ulteriori informazioni su ciclo di strutture, in Visual Basic Editor, fare clic sull'Assistente di Office, digitare cicli e quindi fare clic su Cerca per visualizzare gli argomenti restituiti.

Per ulteriori informazioni su come ottenere aiuto con Visual Basic forApplications, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
305326  (http://support.microsoft.com/kb/305326/EN-US/ ) OFFXP: Programmazione risorse per Visual Basic, Applications Edition
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000: Programmazione risorse per Visual Basic, Applications Edition
163435  (http://support.microsoft.com/kb/163435/EN-US/ ) VBA: Programmazione risorse per Visual Basic, Applications Edition
Manuale dell'utente di Microsoft Excel Visual Basic, versione 5.0 , pagine 143-151

Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 98 per Macintosh
  • Microsoft Excel 5.0 per Macintosh
Chiavi: 
kbmt kbcode kbhowto kbprogramming KB141762 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 141762  (http://support.microsoft.com/kb/141762/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store