Sintomi
Quando si esegue una macro Visual Basic, Applications Edition macro in Microsoft Excel, potrebbe essere visualizzato il messaggio di errore seguente o simile:
Errore di run-time '1004':Metodo 'SaveAs' dell'oggetto '_Worksheet' non riuscito
Causa
Questo comportamento può verificarsi quando sono vere entrambe le condizioni seguenti:
-
Si usa una macro Visual Basic, Applications Edition per salvare un foglio di lavoro.-e-
-
Specificare il formato di file come costante xlWorkbookNormal.
Ad esempio, il codice seguente causa questo errore:
Sub A() Dim myNewSheet As Worksheet Set myNewSheet = ActiveSheet FileNameBin = "c:\ABC" myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormalEnd Sub
Soluzione alternativa
Microsoft fornisce esempi di programmazione solo a scopo illustrativo, senza garanzie espresse o implicite, incluse, ma non limitate, le garanzie implicite di com commercializzabilità e/o idoneità per uno scopo specifico. Questo articolo presuppone che si abbia familiarità con il linguaggio di programmazione illustrato e con gli strumenti usati per creare ed eseguire il debug delle procedure. I professionisti del supporto tecnico Microsoft possono aiutare a spiegare le funzionalità di una particolare procedura, ma non modificheranno questi esempi per fornire funzionalità aggiuntive o creare procedure per soddisfare specifiche esigenze. Se l'esperienza di programmazione è limitata, è possibile contattare un partner certificato Microsoft o servizi di consulenza Microsoft. Per altre informazioni, visitare questi siti Web Microsoft:Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice Per altre informazioni sulle opzioni di supporto disponibili e su come contattare Microsoft, visitare il seguente sito Web Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS Per risolvere questo problema, modificare la specifica del formato di file dalla costante xlWorkbookNormal a 1. Il codice di esempio funziona normalmente se modificato in:
Sub A() Dim myNewSheet As Worksheet Set myNewSheet = ActiveSheet FileNameBin = "c:\ABC" myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1End Sub
NOTA Anche se si salva un foglio di lavoro, tutti i fogli di lavoro nella cartella di lavoro selezionata vengono salvati quando il formato di file è impostato su xlWorkbookNormal o 1.
Stato
Microsoft ha confermato che questo problema si verifica con i prodotti elencati alla fine del presente articolo.