Sto lavorando con Excel 2010 e ho un modulo utente che supporterà varie opzioni di elaborazione (ad esempio ordinare per intervalli predefiniti, ottenere statistiche e il temuto 'esportazione' (SaveAs) Voglio consentire all'utente di esportare uno dei fogli come CSV o XLSXCome utilizzare Excel .SaveAs ma mantenere il nome del foglio originale
Il problema è quando utilizzo SaveAs per salvare come CSV, rinominando il foglio con il nome file selezionato (meno l'estensione Ho cercato per ore e non ho trovato nessun posto che fornisca una soluzione. Ho trovato un post di Stack 5+ anni, ma non aveva una soluzione (vedi How to stop renaming of excelsheets after running the save macro)
Qualsiasi aiuto sarebbe apprezzato ! Grazie!
Ecco il codice:
Dim ws As Excel.Worksheet
Dim strSaveName As String
Dim strThisName As String
strThisName = ThisWorkbook.Path & ThisWorkbook.Name
strSaveName = Application.GetSaveAsFilename(_
fileFilter:="Text Files (*.csv), *.csv")
Set ws = Worksheets("Export")
ws.SaveAs Filename:=strSaveName, FileFormat:=xlCSV
'I do the following TO UNDO THE RENAME <GROAN> (for now just saving as 0.csv)
Sheets("0").Name = "Export"
' Then the following is to regain my original filename since I will continue working...
ws.SaveAs Filename:=strThisName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Sì, non ho appena mostrato il codice per "Annulla". Ho aggiunto un '.Saved = True' al tuo codice per evitare 'Vuoi salvare ...' quando è stato rilasciato '.Close'. Grazie mille per la soluzione !!! –
@ WayneG.Dunn ah, non pensavo che avrebbe mostrato come non ci fossero nuovi cambiamenti dall'ultimo salvataggio, ma devo essere sbagliato in questa situazione (tutto un po 'divertente con le nuove cartelle di lavoro). Sono contento che ci abbia aiutato. –
Sono stato anche sorpreso per il prompt, come concordo, è stato appena salvato! –