Copia o spostamento di fogli utilizzando codice VBA in Excel per Mac

Traduzione articoli Traduzione articoli
Identificativo articolo: 288402 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

È possibile utilizzare codice Microsoft Visual Basic Applications Edition (VBA) per copiare o spostare fogli all'interno di una cartella di lavoro o tra cartelle di lavoro. Questa opzione è particolarmente utile se si desidera spostare o copiare molti fogli o eseguire più copie di un foglio.

In questo articolo vengono forniti esempi di codice VBA per eseguire queste operazioni.

Informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare routine ed eseguirne il debug. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze. Nota In Microsoft Excel 2001 per Mac senza Microsoft Office 2001 per Mac Service Release 1, è necessario inserire il codice in una cartella di lavoro distinta dai fogli copiati.

In Excel 2001 per Mac si verifica un problema se il codice VBA che esegue la copia dei fogli si trova nella stessa cartella di lavoro dei fogli copiati.

Questo problema è stato risolto con Service Release 1 per Microsoft Office 2001 per Mac. Per ulteriori informazioni su questo problema in Excel 2001 per Mac, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
286266 XL2001: Blocco di Excel quando si tenta di copiare un foglio di lavoro nella stessa cartella di lavoro

Codice di esempio per copiare fogli di lavoro

Copiare un foglio specifico nella cartella di lavoro attiva

Sub Copier1()
    'Replace "Sheet1" with the name of the sheet to be copied.
    ActiveWorkbook.Sheets("Sheet1").Copy _
       after:=ActiveWorkbook.Sheets("Sheet1")
End Sub

Copiare un foglio specifico nella cartella di lavoro attiva più volte


Sub Copier2()
    Dim x As Integer
    
    x = InputBox("Enter number of times to copy Sheet1")
    For numtimes = 1 To x
        'Loop by using x as the index number to make x number copies.
        'Replace "Sheet1" with the name of the sheet to be copied.
        ActiveWorkbook.Sheets("Sheet1").Copy _
           After:=ActiveWorkbook.Sheets("Sheet1")
    Next
End Sub

Copiare il foglio attivo più volte

Sub Copier3()
   Dim x As Integer
   
   x = InputBox("Enter number of times to copy active sheet")
   For numtimes = 1 To x
      'Loop by using x as the index number to make x number copies.
      ActiveWorkbook.ActiveSheet.Copy _
         Before:=ActiveWorkbook.Sheets("Sheet1")
         'Put copies in front of Sheet1.
         'Replace "Sheet1" with sheet name that you want.
   Next
End Sub

Copiare tutti i fogli in una cartella di lavoro una volta

Sub Copier4()
   Dim x As Integer

   For x = 1 To ActiveWorkbook.Sheets.Count
      'Loop through each of the sheets in the workbook
      'by using x as the sheet index number.
      ActiveWorkbook.Sheets(x).Copy _
         After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
         'Puts all copies after the last existing sheet.
   Next
End Sub

Codice di esempio per spostare fogli di lavoro

Copiare un foglio attivo in una nuova posizione nella cartella di lavoro

Sub Mover1()
    ActiveSheet.Move _
       After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
       'Moves active sheet to end of active workbook.
End Sub

Copiare un foglio attivo in un'altra cartella di lavoro

Sub Mover2()
    ActiveSheet.Move Before:=Workbooks("Test.xls").Sheets(1)
    'Moves active sheet to beginning of named workbook.
    'Replace Test.xls with the full name of the target workbook you want.
End Sub

Spostare più fogli nella cartella di lavoro attiva in un'altra cartella di lavoro

Sub Mover3()
   Dim BkName As String
   Dim NumSht As Integer
   Dim BegSht As Integer

   'Starts with second sheet - replace with index number of starting sheet.
   BegSht = 2
   'Moves two sheets - replace with number of sheets to move.
   NumSht = 2
   BkName = ActiveWorkbook.Name
    
    For x = 1 To NumSht
      'Moves second sheet in source to front of designated workbook.
      Workbooks(BkName).Sheets(BegSht).Move _
         Before:=Workbooks("Test.xls").Sheets(1)
         'In each loop, the next sheet in line becomes indexed as number 2.
      'Replace Test.xls with the full name of the target workbook you want.
    Next
End Sub

Riferimenti

Microsoft Excel X per Mac e versioni successive

Per ulteriori informazioni sul metodo di copia, in Visual Basic Editor scegliere Ricerca nella Guida in linea di Microsoft Visual Basic dal menu ?, digitare metodo copy scegliere Cerca, quindi fare clic per visualizzare "Metodo Copy". Vengono elencati tre argomenti. Selezionare quello relativo ai fogli di lavoro.

Per ulteriori informazioni sul metodo di spostamento, in Visual Basic Editor scegliere Ricerca nella Guida in linea di Microsoft Visual Basic dal menu ?, digitare metodo move scegliere Cerca, quindi fare clic per visualizzare "Metodo Move". Vengono elencati tre argomenti. Selezionare quello relativo ai fogli di lavoro.

Excel 2001 per Mac

Per ulteriori informazioni sul metodo di copia, in Visual Basic Editor fare clic sull'Assistente di Office, digitare metodo copy, scegliere Cerca, quindi fare clic per visualizzare "Metodo Copy (MS Excel VBA)".

Per ulteriori informazioni sul metodo di spostamento, in Visual Basic Editor fare clic sull'Assistente di Office, digitare metodo move, scegliere Cerca, quindi fare clic per visualizzare "Metodo Move (MS Excel VBA)".

Per ulteriori informazioni sui problemi relativi alla copia di fogli di lavoro contenenti codice nella stessa cartella di lavoro, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
286266 XL2001: Blocco di Excel quando si tenta di copiare un foglio di lavoro nella stessa cartella di lavoro

Microsoft Excel 98 per Macintosh

Per ulteriori informazioni sul metodo di copia, in Visual Basic Editor fare clic sull'Assistente di Office, digitare metodo copy, scegliere Cerca, quindi fare clic per visualizzare "Metodo Copy (Excel 97)".

Per ulteriori informazioni sul metodo di spostamento, in Visual Basic Editor fare clic sull'Assistente di Office, digitare metodo move, scegliere Cerca, quindi fare clic per visualizzare "Metodo Move (Excel 97)".

Proprietà

Identificativo articolo: 288402 - Ultima modifica: lunedì 25 febbraio 2008 - Revisione: 5.3
Le informazioni in questo articolo si applicano a
  • Microsoft Excel 2004 for Mac
  • Microsoft Excel X per Mac
  • Microsoft Excel 2001 per Mac
  • Microsoft Excel 98 per Macintosh
Chiavi: 
kbinfo KB288402
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.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com