Всем доброго времени суток. Нужен макрос, для сохранения последнего видимого листа в файл тип файла "CSV (разделители - запятые)". Сохраняем в туже директорию с таким же именем как у исходного файла. Как ни пробовал переделать шаблон ни чего путного не получается.
Sub CSV()
Dim WS As Worksheet
Dim LastWS As Long
Dim Name As String
Name = ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", ".csv")
For Each WS In ThisWorkbook.Worksheets
If WS.Visible = True Then LastWS = WS.Index
Next
ThisWorkbook.Worksheets(LastWS).Copy
ActiveWorkbook.SaveAs (Name)
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Sub CSV()
Dim WS As Worksheet
Dim LastWS As Long
Dim Name As String
Name = ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", ".csv")
For Each WS In ThisWorkbook.Worksheets
If WS.Visible = True Then LastWS = WS.Index
Next
ThisWorkbook.Worksheets(LastWS).Copy
ActiveWorkbook.SaveAs Filename:=Name, FileFormat:=xlCSVUTF8
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Погодь. У меня макрос хранится в персональной книге макросов. И запускается из панели быстрого доступа.
Из файла работает нормально. НО нужно чтобы запускался из книги макросов. Так как нужно будет обрабатывать присылаемые файлы. Приношу извинения, что не указал данный нюанс.
Sub CSV()
Dim WS As Worksheet
Dim LastWS As Long
Dim Name As String
For Each WS In ActiveWorkbook.Worksheets
If WS.Visible = True Then LastWS = WS.Index
Next
Name = ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".xlsx", ".csv")
ActiveWorkbook.Worksheets(LastWS).Copy
ActiveWorkbook.SaveAs Filename:=Name, FileFormat:=xlCSV
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Sub CSV()
Dim WS As Worksheet
Dim LastWS As Long
Dim Name As String
For Each WS In ActiveWorkbook.Worksheets
If WS.Visible = True Then LastWS = WS.Index
Next
Name = ActiveWorkbook.Path & "\" & "Otchet_" & Replace(ActiveWorkbook.Name, ".xlsx", ".csv")
ActiveWorkbook.Worksheets(LastWS).Copy
ActiveWorkbook.SaveAs Filename:=Name, FileFormat:=xlCSV
ActiveWorkbook.Close False
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.