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:=xlWorkbookNormal
End 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:=1
End 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.