День добрый мне надо подредактировать как то макрос. Лишнее вроде убрал. В макросе сохранение по умалчанию по имени листа. Так надо чтоб тот в свою очередь выводил окно сохранения.
Суть нижеприведенного макроса сохранение без лишних кавычек.Работает исправно. Взят с темы этого форума
Сам макрос
[vba]
Код
Sub ExportSheet2CSV()
' Параметры для сохраняемого файла ' cFileName = "" ' имя файла экспорта, по умолчанию - имя активного листа ' cDelimiter = "," ' разделитель полей ' cTextQualifier = "" ' квалификатор символьных полей, по умолчанию экв. xlTextQualifierNone для совместимости с SQL ' cDecimalSeparator = "." ' символ десятичной точки, по умолчанию экв. "dot" для совместимости ' nStartRow = 1 ' Номер строки на листе - первая строка, с которой выпоняется экспорт (включая заголовок, если есть) ' nStartCol = 1 ' Номер столбца на листе - первый столбец , с которого выполняется экспорт ' vCutHeader = True ' Наличие строки заголовка (подписей столбцов) и его удаление: ' =True=-1 - заголовок считается равным 1 строке, при этом из результирующего файла заголовок исключается ' <0 - размер заголовка в строках, исключается из результата ' >0 - размер заголовка в строках, не исключается из результата (но записывается "как есть", без преобразований) ' =False=0 - заголовок отсутствует ' cFormatdateTime = "YYYY-MM-DD hh:mm:ss" ' формат даты/времени, по умолчанию выставлен в ISO8601 для совместимости ' cTypeQualifier = "#" ' квалификатор логических значений и даты, по умолчанию - пустаое значение
Dim wb As Workbook, newwb As Workbook, sh As Worksheet, newsh As Worksheet Dim nLastRow As Long, nLastCol As Long, i As Long, j As Long Dim cOut As String, cValue
Application.ScreenUpdating = False
Set wb = ActiveWorkbook Set sh = ActiveSheet Set newwb = Workbooks.Add Set newsh = newwb.Sheets(1)
' Установки границ экспортируемой таблицы ' Правая-нижняя граница выставляется по используемой области листа nLastRow = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1 nLastCol = sh.UsedRange.Column + sh.UsedRange.Columns.Count - 1 ' Левая-верхняя граница подтягивается к началу заполнения на листе nStartRow = Application.WorksheetFunction.Max(nStartRow, sh.UsedRange.Row) nStartCol = Application.WorksheetFunction.Max(nStartCol, sh.UsedRange.Column) ' ВНИМАНИЕ - заголовок будет отсчитан от нового левого-верхнего положения ' Анализ заголовка vCutHeader = vCutHeader + 0 If vCutHeader < 0 Then nStartRow = nStartRow - vCutHeader ' Сборка данных For i = nStartRow To nLastRow vCutHeader = vCutHeader - 1 cOut = "" For j = nStartCol To nLastCol cValue = sh.Cells(i, j) If vCutHeader < 0 Then ' не строка заголовка Select Case VarType(cValue) Case vbString cValue = cTextQualifier & cValue & cTextQualifier Case vbInteger, vbLong, vbByte cValue = CStr(cValue) Case vbSingle, vbDouble, vbCurrency, vbDecimal cValue = Replace(CStr(cValue), Application.International(xlDecimalSeparator), cDecimalSeparator) Case vbBoolean cValue = cTypeQualifier & CStr(cValue) & cTypeQualifier Case vbDate cValue = cTypeQualifier & Format(cValue, cFormatDateTime) & cTypeQualifier Case Else ' Все значения ошибок cValue = "" End Select End If cOut = cOut & cDelimiter & CStr(cValue) Next newsh.Cells(i - nStartRow + 1, 1) = Mid(cOut, 1) Next
Set newsh = Nothing
' Сохранение файла If Len(cFileName) = 0 Then cFileName = sh.Name & ".pd4" If InStr(1, cFileName, "\") = 0 Then cFileName = wb.Path & "\" & cFileName
ФАЙЛ ПРИМЕРА УПРОЩЕН И СОХРАНЯЕТ В TXT ДЛЯ ВАШЕГО УДОБСТВА
День добрый мне надо подредактировать как то макрос. Лишнее вроде убрал. В макросе сохранение по умалчанию по имени листа. Так надо чтоб тот в свою очередь выводил окно сохранения.
Суть нижеприведенного макроса сохранение без лишних кавычек.Работает исправно. Взят с темы этого форума
Сам макрос
[vba]
Код
Sub ExportSheet2CSV()
' Параметры для сохраняемого файла ' cFileName = "" ' имя файла экспорта, по умолчанию - имя активного листа ' cDelimiter = "," ' разделитель полей ' cTextQualifier = "" ' квалификатор символьных полей, по умолчанию экв. xlTextQualifierNone для совместимости с SQL ' cDecimalSeparator = "." ' символ десятичной точки, по умолчанию экв. "dot" для совместимости ' nStartRow = 1 ' Номер строки на листе - первая строка, с которой выпоняется экспорт (включая заголовок, если есть) ' nStartCol = 1 ' Номер столбца на листе - первый столбец , с которого выполняется экспорт ' vCutHeader = True ' Наличие строки заголовка (подписей столбцов) и его удаление: ' =True=-1 - заголовок считается равным 1 строке, при этом из результирующего файла заголовок исключается ' <0 - размер заголовка в строках, исключается из результата ' >0 - размер заголовка в строках, не исключается из результата (но записывается "как есть", без преобразований) ' =False=0 - заголовок отсутствует ' cFormatdateTime = "YYYY-MM-DD hh:mm:ss" ' формат даты/времени, по умолчанию выставлен в ISO8601 для совместимости ' cTypeQualifier = "#" ' квалификатор логических значений и даты, по умолчанию - пустаое значение
Dim wb As Workbook, newwb As Workbook, sh As Worksheet, newsh As Worksheet Dim nLastRow As Long, nLastCol As Long, i As Long, j As Long Dim cOut As String, cValue
Application.ScreenUpdating = False
Set wb = ActiveWorkbook Set sh = ActiveSheet Set newwb = Workbooks.Add Set newsh = newwb.Sheets(1)
' Установки границ экспортируемой таблицы ' Правая-нижняя граница выставляется по используемой области листа nLastRow = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1 nLastCol = sh.UsedRange.Column + sh.UsedRange.Columns.Count - 1 ' Левая-верхняя граница подтягивается к началу заполнения на листе nStartRow = Application.WorksheetFunction.Max(nStartRow, sh.UsedRange.Row) nStartCol = Application.WorksheetFunction.Max(nStartCol, sh.UsedRange.Column) ' ВНИМАНИЕ - заголовок будет отсчитан от нового левого-верхнего положения ' Анализ заголовка vCutHeader = vCutHeader + 0 If vCutHeader < 0 Then nStartRow = nStartRow - vCutHeader ' Сборка данных For i = nStartRow To nLastRow vCutHeader = vCutHeader - 1 cOut = "" For j = nStartCol To nLastCol cValue = sh.Cells(i, j) If vCutHeader < 0 Then ' не строка заголовка Select Case VarType(cValue) Case vbString cValue = cTextQualifier & cValue & cTextQualifier Case vbInteger, vbLong, vbByte cValue = CStr(cValue) Case vbSingle, vbDouble, vbCurrency, vbDecimal cValue = Replace(CStr(cValue), Application.International(xlDecimalSeparator), cDecimalSeparator) Case vbBoolean cValue = cTypeQualifier & CStr(cValue) & cTypeQualifier Case vbDate cValue = cTypeQualifier & Format(cValue, cFormatDateTime) & cTypeQualifier Case Else ' Все значения ошибок cValue = "" End Select End If cOut = cOut & cDelimiter & CStr(cValue) Next newsh.Cells(i - nStartRow + 1, 1) = Mid(cOut, 1) Next
Set newsh = Nothing
' Сохранение файла If Len(cFileName) = 0 Then cFileName = sh.Name & ".pd4" If InStr(1, cFileName, "\") = 0 Then cFileName = wb.Path & "\" & cFileName
Ну а это в общем диалоговое окно, и создание папки
[vba]
Код
Sub СохранитьЛистВФайл() On Error Resume Next ' название подпапки, в которую по-умолчанию будет предложено сохранить файл Const REPORTS_FOLDER = "HIRZT\" ' создаём папку для файла, если её ещё нет MkDir ThisWorkbook.Path & "\" & REPORTS_FOLDER ' выбираем стартовую папку ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
' вывод диалогового окна для запроса имени сохраняемого файла Filename = Application.GetSaveAsFilename("latin.pd4", "HIRZT (*.pd4),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(Filename) = vbBoolean Then Exit Sub
' копируем активный лист (при этом создаётся новая книга) Err.Clear: ActiveSheet.Copy: DoEvents If Err Then Exit Sub ' произошла какая-то ошибка при попытке копирования листа
' убеждаемся, что активной книгой является копия листа If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then ' сохраняем файл под заданным именем в формате Excel 2003 ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
' закрываем сохранённый файл ' (удалите следующую строку, если закрывать созданный файл не требуется) ActiveWorkbook.Close False End If End Sub
[/vba]
При последнем макросе выходит абракадабра. В первом в нужном формате. Надо в первую воткнуть диалоговое окно и создание папки. Спасибо заранее профессионалам.
Ну а это в общем диалоговое окно, и создание папки
[vba]
Код
Sub СохранитьЛистВФайл() On Error Resume Next ' название подпапки, в которую по-умолчанию будет предложено сохранить файл Const REPORTS_FOLDER = "HIRZT\" ' создаём папку для файла, если её ещё нет MkDir ThisWorkbook.Path & "\" & REPORTS_FOLDER ' выбираем стартовую папку ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
' вывод диалогового окна для запроса имени сохраняемого файла Filename = Application.GetSaveAsFilename("latin.pd4", "HIRZT (*.pd4),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(Filename) = vbBoolean Then Exit Sub
' копируем активный лист (при этом создаётся новая книга) Err.Clear: ActiveSheet.Copy: DoEvents If Err Then Exit Sub ' произошла какая-то ошибка при попытке копирования листа
' убеждаемся, что активной книгой является копия листа If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then ' сохраняем файл под заданным именем в формате Excel 2003 ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
' закрываем сохранённый файл ' (удалите следующую строку, если закрывать созданный файл не требуется) ActiveWorkbook.Close False End If End Sub
[/vba]
При последнем макросе выходит абракадабра. В первом в нужном формате. Надо в первую воткнуть диалоговое окно и создание папки. Спасибо заранее профессионалам.televnoy
ПРИКРЕПИЛ ФАЙЛ ПРИМЕРА, сохранения для вашего удобства сделал в TXT
В макросе ExportSheet_and_folder сохраняет лист с аброкадаброй Макрос ExportSheetTXT сохраняет лист в нужном формате, без пресловутых """кавычек""" (в нем возможно еще и мусора много)
Так вот во второй ExportSheetTXT, добавить диалоговое окно с созданием папки как в первом, или же наоборот в ExportSheet_and_folder запихнуть нужный формат.
ПРИКРЕПИЛ ФАЙЛ ПРИМЕРА, сохранения для вашего удобства сделал в TXT
В макросе ExportSheet_and_folder сохраняет лист с аброкадаброй Макрос ExportSheetTXT сохраняет лист в нужном формате, без пресловутых """кавычек""" (в нем возможно еще и мусора много)
Так вот во второй ExportSheetTXT, добавить диалоговое окно с созданием папки как в первом, или же наоборот в ExportSheet_and_folder запихнуть нужный формат.televnoy
В принципе решать не мне. Меня название устраивает :-) Если правильно понял, то Вам это надо: [vba]
Код
Sub ExportSheetTXT()
' Параметры для сохраняемого файла ' cFileName = "" ' имя файла экспорта, по умолчанию - имя активного листа ' cDelimiter = "," ' разделитель полей ' cTextQualifier = "" ' квалификатор символьных полей, по умолчанию экв. xlTextQualifierNone для совместимости с SQL ' cDecimalSeparator = "." ' символ десятичной точки, по умолчанию экв. "dot" для совместимости ' nStartRow = 1 ' Номер строки на листе - первая строка, с которой выпоняется экспорт (включая заголовок, если есть) ' nStartCol = 1 ' Номер столбца на листе - первый столбец , с которого выполняется экспорт ' vCutHeader = True ' Наличие строки заголовка (подписей столбцов) и его удаление: ' =True=-1 - заголовок считается равным 1 строке, при этом из результирующего файла заголовок исключается ' <0 - размер заголовка в строках, исключается из результата ' >0 - размер заголовка в строках, не исключается из результата (но записывается "как есть", без преобразований) ' =False=0 - заголовок отсутствует ' cFormatdateTime = "YYYY-MM-DD hh:mm:ss" ' формат даты/времени, по умолчанию выставлен в ISO8601 для совместимости ' cTypeQualifier = "#" ' квалификатор логических значений и даты, по умолчанию - пустаое значение
Dim wb As Workbook, newwb As Workbook, sh As Worksheet, newsh As Worksheet Dim nLastRow As Long, nLastCol As Long, i As Long, j As Long Dim cOut As String, cValue
Application.ScreenUpdating = False
Set wb = ActiveWorkbook Set sh = ActiveSheet Set newwb = Workbooks.Add Set newsh = newwb.Sheets(1)
' Установки границ экспортируемой таблицы ' Правая-нижняя граница выставляется по используемой области листа nLastRow = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1 nLastCol = sh.UsedRange.Column + sh.UsedRange.Columns.Count - 1 ' Левая-верхняя граница подтягивается к началу заполнения на листе nStartRow = Application.WorksheetFunction.Max(nStartRow, sh.UsedRange.Row) nStartCol = Application.WorksheetFunction.Max(nStartCol, sh.UsedRange.Column) ' ВНИМАНИЕ - заголовок будет отсчитан от нового левого-верхнего положения ' Анализ заголовка vCutHeader = vCutHeader + 0 If vCutHeader < 0 Then nStartRow = nStartRow - vCutHeader ' Сборка данных For i = nStartRow To nLastRow vCutHeader = vCutHeader - 1 cOut = "" For j = nStartCol To nLastCol cValue = sh.Cells(i, j) If vCutHeader < 0 Then ' не строка заголовка Select Case VarType(cValue) Case vbString cValue = cTextQualifier & cValue & cTextQualifier Case vbInteger, vbLong, vbByte cValue = CStr(cValue) Case vbSingle, vbDouble, vbCurrency, vbDecimal cValue = Replace(CStr(cValue), Application.International(xlDecimalSeparator), cDecimalSeparator) Case vbBoolean cValue = cTypeQualifier & CStr(cValue) & cTypeQualifier Case vbDate cValue = cTypeQualifier & Format(cValue, cFormatDateTime) & cTypeQualifier Case Else ' Все значения ошибок cValue = "" End Select End If cOut = cOut & cDelimiter & CStr(cValue) Next newsh.Cells(i - nStartRow + 1, 1) = Mid(cOut, 1) Next
Set newsh = Nothing
' Сохранение файла Dim vFilename If Len(cFileName) = 0 Then cFileName = sh.Name & ".txt" vFilename = Application.GetSaveAsFilename("пример.txt", "ФОРМАТ ПРОБЫ (*.txt),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(vFilename) = vbBoolean Then If InStr(1, cFileName, "\") = 0 Then cFileName = wb.Path & "\" & cFileName Else vFilename = Replace(vFilename, Dir(vFilename, 16), "") cFileName = vFilename & cFileName End If
[/vba] Момент: если в диалоговом окне не выбран файл - то сохранен файл будет в папку с книгой, в которой макрос
В принципе решать не мне. Меня название устраивает :-) Если правильно понял, то Вам это надо: [vba]
Код
Sub ExportSheetTXT()
' Параметры для сохраняемого файла ' cFileName = "" ' имя файла экспорта, по умолчанию - имя активного листа ' cDelimiter = "," ' разделитель полей ' cTextQualifier = "" ' квалификатор символьных полей, по умолчанию экв. xlTextQualifierNone для совместимости с SQL ' cDecimalSeparator = "." ' символ десятичной точки, по умолчанию экв. "dot" для совместимости ' nStartRow = 1 ' Номер строки на листе - первая строка, с которой выпоняется экспорт (включая заголовок, если есть) ' nStartCol = 1 ' Номер столбца на листе - первый столбец , с которого выполняется экспорт ' vCutHeader = True ' Наличие строки заголовка (подписей столбцов) и его удаление: ' =True=-1 - заголовок считается равным 1 строке, при этом из результирующего файла заголовок исключается ' <0 - размер заголовка в строках, исключается из результата ' >0 - размер заголовка в строках, не исключается из результата (но записывается "как есть", без преобразований) ' =False=0 - заголовок отсутствует ' cFormatdateTime = "YYYY-MM-DD hh:mm:ss" ' формат даты/времени, по умолчанию выставлен в ISO8601 для совместимости ' cTypeQualifier = "#" ' квалификатор логических значений и даты, по умолчанию - пустаое значение
Dim wb As Workbook, newwb As Workbook, sh As Worksheet, newsh As Worksheet Dim nLastRow As Long, nLastCol As Long, i As Long, j As Long Dim cOut As String, cValue
Application.ScreenUpdating = False
Set wb = ActiveWorkbook Set sh = ActiveSheet Set newwb = Workbooks.Add Set newsh = newwb.Sheets(1)
' Установки границ экспортируемой таблицы ' Правая-нижняя граница выставляется по используемой области листа nLastRow = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1 nLastCol = sh.UsedRange.Column + sh.UsedRange.Columns.Count - 1 ' Левая-верхняя граница подтягивается к началу заполнения на листе nStartRow = Application.WorksheetFunction.Max(nStartRow, sh.UsedRange.Row) nStartCol = Application.WorksheetFunction.Max(nStartCol, sh.UsedRange.Column) ' ВНИМАНИЕ - заголовок будет отсчитан от нового левого-верхнего положения ' Анализ заголовка vCutHeader = vCutHeader + 0 If vCutHeader < 0 Then nStartRow = nStartRow - vCutHeader ' Сборка данных For i = nStartRow To nLastRow vCutHeader = vCutHeader - 1 cOut = "" For j = nStartCol To nLastCol cValue = sh.Cells(i, j) If vCutHeader < 0 Then ' не строка заголовка Select Case VarType(cValue) Case vbString cValue = cTextQualifier & cValue & cTextQualifier Case vbInteger, vbLong, vbByte cValue = CStr(cValue) Case vbSingle, vbDouble, vbCurrency, vbDecimal cValue = Replace(CStr(cValue), Application.International(xlDecimalSeparator), cDecimalSeparator) Case vbBoolean cValue = cTypeQualifier & CStr(cValue) & cTypeQualifier Case vbDate cValue = cTypeQualifier & Format(cValue, cFormatDateTime) & cTypeQualifier Case Else ' Все значения ошибок cValue = "" End Select End If cOut = cOut & cDelimiter & CStr(cValue) Next newsh.Cells(i - nStartRow + 1, 1) = Mid(cOut, 1) Next
Set newsh = Nothing
' Сохранение файла Dim vFilename If Len(cFileName) = 0 Then cFileName = sh.Name & ".txt" vFilename = Application.GetSaveAsFilename("пример.txt", "ФОРМАТ ПРОБЫ (*.txt),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(vFilename) = vbBoolean Then If InStr(1, cFileName, "\") = 0 Then cFileName = wb.Path & "\" & cFileName Else vFilename = Replace(vFilename, Dir(vFilename, 16), "") cFileName = vFilename & cFileName End If
[/vba] тогда все будет как положено. А если и имя файла не должно быть как имя листа - то вообще не понимаю проблемы - у Вас и так все готово для этого: [vba]
Код
vFilename = Application.GetSaveAsFilename("пример.txt", "ФОРМАТ ПРОБЫ (*.txt),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(vFilename) = vbBoolean Then Exit Sub cFileName = vFilename
[/vba]
Но если Вы сам файл из папки не выбираете, а просто жмете Ок - то можете дополнить: [vba]
[/vba] тогда все будет как положено. А если и имя файла не должно быть как имя листа - то вообще не понимаю проблемы - у Вас и так все готово для этого: [vba]
Код
vFilename = Application.GetSaveAsFilename("пример.txt", "ФОРМАТ ПРОБЫ (*.txt),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(vFilename) = vbBoolean Then Exit Sub cFileName = vFilename
Так. Объясните нормально при каких условиях и с каким именем должен сохраняться файл. Зачем заставлять угадывать что Вам надо? Если нажали Отмена - что должно произойти? Если нажали Да - под каким именем должен сохраниться файл?
Так. Объясните нормально при каких условиях и с каким именем должен сохраняться файл. Зачем заставлять угадывать что Вам надо? Если нажали Отмена - что должно произойти? Если нажали Да - под каким именем должен сохраниться файл?The_Prist
Errare humanum est, stultum est in errore perseverare
УВАЖАЕМЫЙ AndreTM, данный макрос я как то не допонял. Насколько бы он не был прозрачен. Не выполняется вообще. А в терминах недопанимаю, а если быть правдивым вообще не понимаю. Надо данный макрос воткнуть в вышеперечисленный? То куда? Сам пос себе он ругается. Или же переимновать листы?
При ошибке выделенна строка [vba]
Код
ExportSheet2CSV
[/vba] Ну и желтым [vba]
Код
Sub ExportData()
[/vba]
УВАЖАЕМЫЙ AndreTM, данный макрос я как то не допонял. Насколько бы он не был прозрачен. Не выполняется вообще. А в терминах недопанимаю, а если быть правдивым вообще не понимаю. Надо данный макрос воткнуть в вышеперечисленный? То куда? Сам пос себе он ругается. Или же переимновать листы?
Извените пожалуйста The_Prist, за неясное объяснения.
Данный макрос, предложенный вами, работает так как надо.
[vba]
Код
vFilename = Application.GetSaveAsFilename("пример.txt", "ФОРМАТ ПРОБЫ (*.txt),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(vFilename) = vbBoolean Then Exit Sub cFileName = vFilename
[/vba]
Сохраняет так как положенно.
При отмене должен закрываться книга которую он не сохранил. Получается я запустил макрос - выдало диалоговое окно - отменить - окно диалоговое закрылось-но осталась открытая книга созданная макросом. Так вот хочу чтоб при отмене данная книга, которая не сохранилась под нужным нам форматом и т.п. закрылась тоже.
А по сути из всего следует мне нужен простой текстовый форматированный текст, без лишних там кавычек. На данный момент корректно срабатывает на сохранение данный макрос.
Извените пожалуйста The_Prist, за неясное объяснения.
Данный макрос, предложенный вами, работает так как надо.
[vba]
Код
vFilename = Application.GetSaveAsFilename("пример.txt", "ФОРМАТ ПРОБЫ (*.txt),", , _ "Введите имя файла для сохраняемого отчёта", "Сохранить") ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл If VarType(vFilename) = vbBoolean Then Exit Sub cFileName = vFilename
[/vba]
Сохраняет так как положенно.
При отмене должен закрываться книга которую он не сохранил. Получается я запустил макрос - выдало диалоговое окно - отменить - окно диалоговое закрылось-но осталась открытая книга созданная макросом. Так вот хочу чтоб при отмене данная книга, которая не сохранилась под нужным нам форматом и т.п. закрылась тоже.
А по сути из всего следует мне нужен простой текстовый форматированный текст, без лишних там кавычек. На данный момент корректно срабатывает на сохранение данный макрос.televnoy
televnoy, если бы вы в предыдущей теме сходили по ссылке, прочитали правила, выложили примеры (excel и текст) , вы давно уже имели бы готовый макрос, ибо он (вместе с сохранением) - 10-15 строк.
televnoy, если бы вы в предыдущей теме сходили по ссылке, прочитали правила, выложили примеры (excel и текст) , вы давно уже имели бы готовый макрос, ибо он (вместе с сохранением) - 10-15 строк.RAN