Pracuję z programem Excel 2010 i mam formularz użytkownika, który obsługuje różne opcje przetwarzania (np. Sortowanie według wstępnie zdefiniowanych zakresów, uzyskiwanie statystyk i przerażające "eksportowanie" (SaveAs) Chcę zezwolić użytkownikowi na eksport jednego z arkuszy jako CSV lub XLSX.Sposób korzystania z programu Excel .SaveAs, ale zachowaj oryginalną nazwę arkusza
Problem polega na tym, że używam SaveAs do zapisania jako pliku CSV, zmieniam nazwę arkusza na nazwę pliku, który wybrałem (bez rozszerzenia) Szukałem wiele godzin i nie znalazłem żadnego miejsca, które zapewnia rozwiązanie.Znalazłem stos 5+ latek, ale nie miałem rozwiązania (zobacz How to stop renaming of excelsheets after running the save macro)
Każda pomoc byłaby doceniana Dzięki!
Oto kod:
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
Tak, po prostu nie pokazałem kodu dla "Anuluj". Dodałem kod ".Saved = True" do kodu, aby uniknąć "Czy chcesz zapisać ..." po wydaniu polecenia ".Close". Dziękuję bardzo za Twoje rozwiązanie !!! –
@ WayneG.Dunn ah, nie myślałem, że to pokazałoby, ponieważ nie było żadnych nowych zmian od czasu ostatniego zapisu, ale muszę się mylić w tej sytuacji (wszystko trochę zabawne z nowymi skoroszytami). Cieszę się, że to pomogło. –
Zaskoczyło mnie również zgłoszenie, ponieważ zgadzam się - został on właśnie zapisany! –