Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

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")    NextEnd 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.   NextEnd 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.   NextEnd 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.    NextEnd 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)".

XL2001KB MAC XL2001 XL98 Excel copy code VBA programming automation Visual Basic macro transfer XLX XL2004
Proprietà

ID articolo: 288402 - Ultima revisione: 02/25/2008 16:10:00 - Revisione: 5.3

Microsoft Excel 2004 for Mac, Microsoft Excel X per Mac, Microsoft Excel 2001 per Mac, Microsoft Excel 98 per Macintosh

  • kbinfo KB288402
Feedback
>html>;t=">