Поменять расширение файла vba
Добрый день!
Столкнулся с такой проблемой. Работаю с макросом, который переносит данный из одного файла (oAwb) в "шаблон"(oPip) и сохраняет шаблон с именем файла.
Макрос переносит из "(oAwb)" значения в "(oPip)" в заданный диапазон ячеек.
Но проблема в том что (oPip) с поддержкой макросов, а (oAwb) без поддержки..
После завершения переноса, макрос сохраняет в формате (.xlsx), и естественно Шаблон уже не открывается, если только в названии файла не поменять в ручную на .xlsb (но там с пару тысяч моделей поэтому не вариант)
Код:
[vba]
Workbooks(oPip).SaveCopyAs Workbooks(oAwb).Path & "\ИМ 2.0\" & Workbooks(oAwb).Name
Workbooks(oAwb).Close False
Workbooks(oPip).Close False
Next oFile
Добрый день!
Столкнулся с такой проблемой. Работаю с макросом, который переносит данный из одного файла (oAwb) в "шаблон"(oPip) и сохраняет шаблон с именем файла.
Макрос переносит из "(oAwb)" значения в "(oPip)" в заданный диапазон ячеек.
Но проблема в том что (oPip) с поддержкой макросов, а (oAwb) без поддержки..
После завершения переноса, макрос сохраняет в формате (.xlsx), и естественно Шаблон уже не открывается, если только в названии файла не поменять в ручную на .xlsb (но там с пару тысяч моделей поэтому не вариант)
Код:
[vba]
Workbooks(oPip).SaveCopyAs Workbooks(oAwb).Path & "\ИМ 2.0\" & Workbooks(oAwb).Name
Workbooks(oAwb).Close False
Workbooks(oPip).Close False
Next oFile
Workbooks(oPip).SaveCopyAs Workbooks(oAwb).Path & "\ИМ 2.0\" & Workbooks(oAwb).Name
Workbooks(oAwb).Close False
Workbooks(oPip).Close False
Next oFile
[/vba]
Подскажите как можно решить данную проблему?
Чуйка говорит что все очень просто.. Автор - HaveHrono
Дата добавления - 18.04.2019 в 13:26
Добрый день.
Сохраняйте сразу в xlsb - но конечно не копию, раз исходник в другом формате.
Как сохранять - смотрите что пишет рекордер.
Добрый день.
Сохраняйте сразу в xlsb - но конечно не копию, раз исходник в другом формате.
Как сохранять - смотрите что пишет рекордер. Hugo
Workbooks(oPip).SaveCopyAs Workbooks(oAwb).Path & "\ИМ 2.0\" & Workbooks(oAwb).Name & ".xlsb"
Workbooks(oAwb).Close False
Workbooks(oPip).Close False
Next oFile
Workbooks(oPip).SaveCopyAs Workbooks(oAwb).Path & "\ИМ 2.0\" & Workbooks(oAwb).Name & ".xlsb"
Workbooks(oAwb).Close False
Workbooks(oPip).Close False
Next oFile
Workbooks(oPip).SaveCopyAs Workbooks(oAwb).Path & "\ИМ 2.0\" & Workbooks(oAwb).Name & ".xlsb"
Workbooks(oAwb).Close False
Workbooks(oPip).Close False
Next oFile
[/vba]
Просто берет полное название файла открытого и сохраняет его в том же формате. Автор - HaveHrono
Дата добавления - 18.04.2019 в 14:05
- это очевидно не прочитали. Или английского вообще не знаете?
Да и про рекордер тоже никакой реакции.
- это очевидно не прочитали. Или английского вообще не знаете?
Да и про рекордер тоже никакой реакции. Hugo
- это очевидно не прочитали. Или английского вообще не знаете?
Да и про рекордер тоже никакой реакции. Автор - Hugo
Дата добавления - 18.04.2019 в 14:08
Hugo, да все прочитал, но в данном случае необходимо время для изучения, которого нет сейчас.
Но увы у меня знания поверхностные по макросам. В данном случае макрос собран из блоков других макросов собранных с форумов.
И мне банально не понятно "как заменить расширение в имени в самом макросе".
И сохранить нужно именно копию в формате .xlsb с тем же названием, а не перезаписывать файлы.
Сам же шаблон в корректном формате, но при сохранении берет вместе с названием файла и формат .xlsx
Hugo, да все прочитал, но в данном случае необходимо время для изучения, которого нет сейчас.
Но увы у меня знания поверхностные по макросам. В данном случае макрос собран из блоков других макросов собранных с форумов.
И мне банально не понятно "как заменить расширение в имени в самом макросе".
И сохранить нужно именно копию в формате .xlsb с тем же названием, а не перезаписывать файлы.
Сам же шаблон в корректном формате, но при сохранении берет вместе с названием файла и формат .xlsx HaveHrono
Копия не может быть в другом формате - она может быть только с другим названием. Это ведь копия!
А если желаете сменить формат - "сохраняйте как" а не "сохраняйте копию как" (это про английский) - и тут как сделать правильно напишет рекордер, я это даже и не пытаюсь дословно запоминать.
Копия не может быть в другом формате - она может быть только с другим названием. Это ведь копия!
А если желаете сменить формат - "сохраняйте как" а не "сохраняйте копию как" (это про английский) - и тут как сделать правильно напишет рекордер, я это даже и не пытаюсь дословно запоминать. Hugo
Наверняка многие сталкивались с такой проблемой, что некоторые программы и макросы позволяют работать исключительно с определенными форматами файлов. А в жизни далеко не всегда все файлы в одном формате. Например, модная в последнее время надстройка PowerQuery неравнодушна к файлам xlsb - с ними она порой отказывается нормально работать и предпочитает им более открытые форматы xlsx и xslm.
Решил набросать небольшой практический код, который пересохраняет все файлы в указанной папке в один формат, что избавит от ручной работы в виде открывания и сохранения каждого файла в нужный формат.
Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, в Excel переходим в редактор VBA( Alt + F11 ) -Insert -Module. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt + F8 - SaveAs_Mass -Выполнить (Run) .
Все, что будет необходимо это указать один из форматов и выбрать папку с файлами, для пересохранения. В папке может находится и сам файл с кодом, но он не будет затронут.
Основные запросы и настройки кода:
-
Первым появляется запрос формата файлов( Укажите новое расширение для файлов: ) - здесь надо указать формат, который будет назначен выбранным файлам после выполнения команды. Доступные форматы:
- xlsx - книга Excel без поддержки макросов
- xlsm - книга Excel с поддержкой макросов
- xlsb - двоичная книга Excel (с поддержкой макросов)
- xlam - надстройка Excel
- xltx - шаблон Excel
- xltm - шаблон Excel с поддержкой макросов
- xls - книга Excel (97-2003)
- xla - надстройка Excel (97-2003)
- xlt - шаблон Excel (97-2003)
-
1. xlsx - книга Excel без поддержки макросов. При сохранении в данный формат книг, содержащих макросы, все макросы будут удалены автоматически. Если необходимо сохранить макросы следует выбрать формат - xlsm.
2. xlsm - книга Excel с поддержкой макросов
3. xlsb - двоичная книга Excel (с поддержкой макросов)
4. xlam - надстройка Excel (с поддержкой макросов)
5. xltx - шаблон Excel (без поддержки макросов)
6. xltm - шаблон Excel с поддержкой макросов
7. xls - книга Excel (97-2003)
8. xla - надстройка Excel (97-2003)
9. xlt - шаблон Excel (97-2003)
Небольшой практический совет: приложенный код можно применить для удаления макросов из всех указанных книг. Все книги, макросы в которых необходимо удалить, помещаются в одну папку. Далее запускается код и указывается формат "xlsx". Все файлы будут сохранены в этом формате. После этого можно будет файлы пересохранить и в иной формат(xls, например). Но макросов там уже точно не будет.
Изменение формата приведенным кодом возможно только для файлов Excel и не может быть использовано для изменения форматов файлов других программ(OpenOffice, Paint и т.п.).
Команда изменяет формат для всех отобранных файлов на указанный. При этом команда может создать копию файла или заменить формат у исходного файла, а так же применить к каждому файлу указанный макрос из любой выбранной книги.
Для чего это может быть нужно: некоторые программы и макросы позволяют работать исключительно с определенными форматами файлов. А в жизни далеко не всегда все файлы в одном формате. Так же эту команду можно применить для удаления макросов из всех указанных книг. Все книги, макросы в которых необходимо удалить, помещаются в одну папку. Далее запускается эта команда, выбирается формат "xlsx - книга Excel без поддержки макросов" и выполняется. Все файлы будут сохранены в этом формате. После этого можно будет файлы пересохранить и в иной формат(xls, например). Но макросов там уже точно не будет.
Изменение формата данной командой применимо исключительно к файлам Excel и не может быть использовано для изменения форматов файлов других программ (OpenOffice, Paint и т.п.).
Просматривать файлы:
-
Все в выбранной папке - после нажатия кнопки ОК будет предложено выбрать папку с файлами. Форматы всех файлов в этой папке будут изменены на указанный.
-
включая подпапки - доступно для пункта Все в выбранной папке. Если установлен, то файлы будут просматриваться не только в указанной папке, но и во всех вложенных в неё папках до самой глубоко вложенной. Если отключен, то файлы будут просматриваться исключительно в указанной папке.
Изменять формат файлов: - включить, если надо изменять формат файлов. Если отключен, то формат файлов не изменяется. Это можно использовать если необходимо лишь применить для группы файлов определенный макрос, не изменяя сами форматы.
-
Сохранить все файлы в формат - выбирается формат файлов, который будет назначен выбранным файлам после выполнения команды. Доступно девять форматов:
Все форматы стандартны для Excel
Если файл существует - опция предназначена для возможности выбора действий при возникновении конфликтов создания файлов, которые возникают при наличии такого файла в папке. Что это значит. Если программа должна изменить формат файла "Книга1.xlsx" на "Книга1.xlsm", но файл "Книга1.xlsm" уже существует в папке с исходными файлами - программа может либо заменить существующий файл, либо оставить его и ничего не преобразовывать. И в таких ситуациях Вы можете выбрать как должна поступить программа:
Применить к каждому файлу код(макрос) - если установлен, необходимо выбрать книгу, содержащую макросы. Ниже появится список доступных для выполнения макросов. Можно выбрать один любой макрос, который будет выполнен для каждой просматриваемой книги. В поле попадают только те макросы, которые не содержат обязательных передаваемых аргументов.
Примечание: применяя данную команду следует убедиться, что у Вас есть все права на запись и изменение файлов в указанных папках. Так же следует осторожно выбирать форматы и файлы - операции по изменению формата необратимы и во избежание потери данных рекомендуется пробовать функционал команды на копиях файлов. В случае утери каких-либо данных вследствие неосмотрительного применения данной команды автор надстройки никакой ответственности не несет
Видеоинструкции по использованию надстройки MulTEx
Поделитесь своим мнением
Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум
Здравствуйте.
Как переименовать готовый файл prm который получается в результате такого кода:
.
[vba]
Const FINAL_OUT = "final\"
dateFormat = Format(Now(), "dd.mm.yyyy_hh-mm-ss")
MkDir ThisWorkbook.Path & "\" & FINAL_OUT
ChDir Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & FINAL_OUT
ActiveWorkbook.SaveAs Filename:="" & dateFormat & ".prn", _
FileFormat:=xlTextPrinter, CreateBackup:=False
Суть такого решения в том, что: Создается таблица в которой от 20 до 10000 строк текста, длина текста всегда разная, формат тоже разный, от 00001 до 2,45. При экспорте данных в txt(с табуляцией), xlText все данные в которых есть знак "," берутся в кавычки, при экспорте в txt(с табуляцией), xlTextPrinter - между очень длинными данными отсутствует пробел. А это все в таком виде не загружается в базу. Идеальное форматирование сохраняется при экспорте в формате *.prm. Но итоговый файл должен быть с расширением *.txt . При этом текущее имя файла должно быть в формате текущей даты и времени, можно без секунд.
Информацию как переименовать файлы с помощью vba я нашел, а вот как правильно указать данный адрес файла не могу понять. Кто сможет показать корректный код для данного решения?
Заранее благодарен
Здравствуйте.
Как переименовать готовый файл prm который получается в результате такого кода:
.
[vba]
Const FINAL_OUT = "final\"
dateFormat = Format(Now(), "dd.mm.yyyy_hh-mm-ss")
MkDir ThisWorkbook.Path & "\" & FINAL_OUT
ChDir Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & FINAL_OUT
ActiveWorkbook.SaveAs Filename:="" & dateFormat & ".prn", _
FileFormat:=xlTextPrinter, CreateBackup:=False
Суть такого решения в том, что: Создается таблица в которой от 20 до 10000 строк текста, длина текста всегда разная, формат тоже разный, от 00001 до 2,45. При экспорте данных в txt(с табуляцией), xlText все данные в которых есть знак "," берутся в кавычки, при экспорте в txt(с табуляцией), xlTextPrinter - между очень длинными данными отсутствует пробел. А это все в таком виде не загружается в базу. Идеальное форматирование сохраняется при экспорте в формате *.prm. Но итоговый файл должен быть с расширением *.txt . При этом текущее имя файла должно быть в формате текущей даты и времени, можно без секунд.
Информацию как переименовать файлы с помощью vba я нашел, а вот как правильно указать данный адрес файла не могу понять. Кто сможет показать корректный код для данного решения?
Заранее благодарен naxa
Const FINAL_OUT = "final\"
dateFormat = Format(Now(), "dd.mm.yyyy_hh-mm-ss")
MkDir ThisWorkbook.Path & "\" & FINAL_OUT
ChDir Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & FINAL_OUT
ActiveWorkbook.SaveAs Filename:="" & dateFormat & ".prn", _
FileFormat:=xlTextPrinter, CreateBackup:=False
Суть такого решения в том, что: Создается таблица в которой от 20 до 10000 строк текста, длина текста всегда разная, формат тоже разный, от 00001 до 2,45. При экспорте данных в txt(с табуляцией), xlText все данные в которых есть знак "," берутся в кавычки, при экспорте в txt(с табуляцией), xlTextPrinter - между очень длинными данными отсутствует пробел. А это все в таком виде не загружается в базу. Идеальное форматирование сохраняется при экспорте в формате *.prm. Но итоговый файл должен быть с расширением *.txt . При этом текущее имя файла должно быть в формате текущей даты и времени, можно без секунд.
Информацию как переименовать файлы с помощью vba я нашел, а вот как правильно указать данный адрес файла не могу понять. Кто сможет показать корректный код для данного решения?
Заранее благодарен Автор - naxa
Дата добавления - 22.10.2013 в 14:20
naxa, а можете сказать покороче. мне кажется тут много лишнего написано =\
как найти файл *.prm на компьютере и переименовать с помощью VBA? такой ваш вопрос?
naxa, а можете сказать покороче. мне кажется тут много лишнего написано =\
как найти файл *.prm на компьютере и переименовать с помощью VBA? такой ваш вопрос? Матраскин
в интернете опять кто-то не прав
как найти файл *.prm на компьютере и переименовать с помощью VBA? такой ваш вопрос? Автор - Матраскин
Дата добавления - 22.10.2013 в 15:34
С уважением,
Алексей
MS Excel 2003 - the best.
Я полагаю что автор пытается переименовать файл пока он незакрыт а если его закрыть то дальнейший код по переименованию не срабатывает. В общем тут нужны пояснения ТС
Я полагаю что автор пытается переименовать файл пока он незакрыт а если его закрыть то дальнейший код по переименованию не срабатывает. В общем тут нужны пояснения ТС Poltava
, то почему сразу не сохранить как *.txt ?
2. Что-то я очень сильно сомневаюсь, что при простом переименовании файла получится что-то путное.
, то почему сразу не сохранить как *.txt ?
2. Что-то я очень сильно сомневаюсь, что при простом переименовании файла получится что-то путное. Alex_ST
, то почему сразу не сохранить как *.txt ?
2. Что-то я очень сильно сомневаюсь, что при простом переименовании файла получится что-то путное. Автор - Alex_ST
Дата добавления - 22.10.2013 в 18:10
Sub naxa()
Const FINAL_OUT = "final\"
dateFormat = Format(Now(), "dd.mm.yyyy_hh-mm-ss")
fn = ThisWorkbook.Path & "\" & FINAL_OUT
pas = Right(ThisWorkbook.Name, Len(ThisWorkbook.Name) - InStrRev(ThisWorkbook.Name, ".") + 1)
On Error Resume Next: MkDir fn: On Error GoTo 0
ActiveWorkbook.SaveCopyAs Environ("temp") & "\" & dateFormat & ðàs
Workbooks.Open Environ("temp") & "\" & dateFormat & pas
ActiveWorkbook.SaveAs Filename:=fn & dateFormat & ".prn", _
FileFormat:=xlTextPrinter, CreateBackup:=False
ActiveWorkbook.Close False: Kill Environ("temp") & "\" & dateFormat & pas
Name fn & dateFormat & ".prn" As fn & dateFormat & ".txt"
End Sub
Sub naxa()
Const FINAL_OUT = "final\"
dateFormat = Format(Now(), "dd.mm.yyyy_hh-mm-ss")
fn = ThisWorkbook.Path & "\" & FINAL_OUT
pas = Right(ThisWorkbook.Name, Len(ThisWorkbook.Name) - InStrRev(ThisWorkbook.Name, ".") + 1)
On Error Resume Next: MkDir fn: On Error GoTo 0
ActiveWorkbook.SaveCopyAs Environ("temp") & "\" & dateFormat & ðàs
Workbooks.Open Environ("temp") & "\" & dateFormat & pas
ActiveWorkbook.SaveAs Filename:=fn & dateFormat & ".prn", _
FileFormat:=xlTextPrinter, CreateBackup:=False
ActiveWorkbook.Close False: Kill Environ("temp") & "\" & dateFormat & pas
Name fn & dateFormat & ".prn" As fn & dateFormat & ".txt"
End Sub
Sub naxa()
Const FINAL_OUT = "final\"
dateFormat = Format(Now(), "dd.mm.yyyy_hh-mm-ss")
fn = ThisWorkbook.Path & "\" & FINAL_OUT
pas = Right(ThisWorkbook.Name, Len(ThisWorkbook.Name) - InStrRev(ThisWorkbook.Name, ".") + 1)
On Error Resume Next: MkDir fn: On Error GoTo 0
ActiveWorkbook.SaveCopyAs Environ("temp") & "\" & dateFormat & ðàs
Workbooks.Open Environ("temp") & "\" & dateFormat & pas
ActiveWorkbook.SaveAs Filename:=fn & dateFormat & ".prn", _
FileFormat:=xlTextPrinter, CreateBackup:=False
ActiveWorkbook.Close False: Kill Environ("temp") & "\" & dateFormat & pas
Name fn & dateFormat & ".prn" As fn & dateFormat & ".txt"
End Sub
А может быть мы все перестанем изображать из себя Вольфов Мессингов и пытаться силой мысли проникнуть в тайны задумки автора?
А может быть мы все перестанем изображать из себя Вольфов Мессингов и пытаться силой мысли проникнуть в тайны задумки автора? Alex_ST
Вот как раз этим "лишним" я и пытался избежать всего что было тут сейчас написано) но похоже ни код ни помог ни все лишнее
Короче попытаюсь пояснить еще раз что нужно:
1. Сохраняю файл в формате prn (почему именно в нем уже писал - сохраняется абсолютное форматирование как у оригинала)
2. Файл закрывается.
3. Необходимо найти этот файл в той папке где он сохранился(путь сохранения устанавливается через ThisWorkbook.Path & "\" & FINAL_OUT как указано в вопросе)
4. И изменить расширение файла с prn на txt (что бы программа его приняла)
Что у меня не получается из всего этого сделать:
3. Необходимо найти этот файл в той папке где он сохранился(путь устанавливается через ThisWorkbook.Path & "\" & FINAL_OUT как указано в вопросе)
4. И изменить расширение файла с prn на txt (что бы программа его приняла)
В особенности пункт 3
Вот как раз этим "лишним" я и пытался избежать всего что было тут сейчас написано) но похоже ни код ни помог ни все лишнее
Короче попытаюсь пояснить еще раз что нужно:
1. Сохраняю файл в формате prn (почему именно в нем уже писал - сохраняется абсолютное форматирование как у оригинала)
2. Файл закрывается.
3. Необходимо найти этот файл в той папке где он сохранился(путь сохранения устанавливается через ThisWorkbook.Path & "\" & FINAL_OUT как указано в вопросе)
4. И изменить расширение файла с prn на txt (что бы программа его приняла)
Что у меня не получается из всего этого сделать:
3. Необходимо найти этот файл в той папке где он сохранился(путь устанавливается через ThisWorkbook.Path & "\" & FINAL_OUT как указано в вопросе)
4. И изменить расширение файла с prn на txt (что бы программа его приняла)
В особенности пункт 3 naxa
Вот как раз этим "лишним" я и пытался избежать всего что было тут сейчас написано) но похоже ни код ни помог ни все лишнее
Короче попытаюсь пояснить еще раз что нужно:
1. Сохраняю файл в формате prn (почему именно в нем уже писал - сохраняется абсолютное форматирование как у оригинала)
2. Файл закрывается.
3. Необходимо найти этот файл в той папке где он сохранился(путь сохранения устанавливается через ThisWorkbook.Path & "\" & FINAL_OUT как указано в вопросе)
4. И изменить расширение файла с prn на txt (что бы программа его приняла)
Что у меня не получается из всего этого сделать:
3. Необходимо найти этот файл в той папке где он сохранился(путь устанавливается через ThisWorkbook.Path & "\" & FINAL_OUT как указано в вопросе)
4. И изменить расширение файла с prn на txt (что бы программа его приняла)
В особенности пункт 3 Автор - naxa
Дата добавления - 05.11.2013 в 01:03
[/vba]а зачем? Кто вам запрещает сразу указать расширение .txt?
Кроме того - нет "формата prn", есть FileFormat:=xlTextPrinter. И он тоже имеет свои недостатки.
Поэтому я и указывал выше, что можно сформировать файл с нужным содержанием и именем. А вы всё решаете какую-то поставленную только перед собою задачу.
[/vba]а зачем? Кто вам запрещает сразу указать расширение .txt?
Кроме того - нет "формата prn", есть FileFormat:=xlTextPrinter. И он тоже имеет свои недостатки.
Поэтому я и указывал выше, что можно сформировать файл с нужным содержанием и именем. А вы всё решаете какую-то поставленную только перед собою задачу. AndreTM
[/vba]а зачем? Кто вам запрещает сразу указать расширение .txt?
Кроме того - нет "формата prn", есть FileFormat:=xlTextPrinter. И он тоже имеет свои недостатки.
Поэтому я и указывал выше, что можно сформировать файл с нужным содержанием и именем. А вы всё решаете какую-то поставленную только перед собою задачу. Автор - AndreTM
Дата добавления - 05.11.2013 в 05:30
Извините, но вы вообще читали что я писал?
Попробуйте сохранить ячейки с абсолютно разными форматами и длиной строки(от 3 до 30 символов) и сохранить в формате txt и вы увидите что очень длинные строки сливаются вместе, из-за более коротких строк, а так же происходит смещение самого текста все по той же самой причине.
Я достаточно перебирал все варианты и уже четко определил какой формат мне нужен. Я не задаю вопрос какой формат мне выбрать.
Что-то я не совсем вас понял, вы вообще о чем? Ясное дело что это моя задача и мне ее нужно решить для себя, для облегчения рутинной, ежедневной, работы, что бы делать ее не за 3 с половиной часа, а за 2 минуты. Я за тем сюда и обратился, в надежде, что знающие люди помогут мне в этом.
Если нет возможности подсказать то зачем тратить и свое и чужое время??
Извините, но вы вообще читали что я писал?
Попробуйте сохранить ячейки с абсолютно разными форматами и длиной строки(от 3 до 30 символов) и сохранить в формате txt и вы увидите что очень длинные строки сливаются вместе, из-за более коротких строк, а так же происходит смещение самого текста все по той же самой причине.
Я достаточно перебирал все варианты и уже четко определил какой формат мне нужен. Я не задаю вопрос какой формат мне выбрать.
Что-то я не совсем вас понял, вы вообще о чем? Ясное дело что это моя задача и мне ее нужно решить для себя, для облегчения рутинной, ежедневной, работы, что бы делать ее не за 3 с половиной часа, а за 2 минуты. Я за тем сюда и обратился, в надежде, что знающие люди помогут мне в этом.
Если нет возможности подсказать то зачем тратить и свое и чужое время?? naxa
Извините, но вы вообще читали что я писал?
Попробуйте сохранить ячейки с абсолютно разными форматами и длиной строки(от 3 до 30 символов) и сохранить в формате txt и вы увидите что очень длинные строки сливаются вместе, из-за более коротких строк, а так же происходит смещение самого текста все по той же самой причине.
Я достаточно перебирал все варианты и уже четко определил какой формат мне нужен. Я не задаю вопрос какой формат мне выбрать.
Что-то я не совсем вас понял, вы вообще о чем? Ясное дело что это моя задача и мне ее нужно решить для себя, для облегчения рутинной, ежедневной, работы, что бы делать ее не за 3 с половиной часа, а за 2 минуты. Я за тем сюда и обратился, в надежде, что знающие люди помогут мне в этом.
Если нет возможности подсказать то зачем тратить и свое и чужое время?? Автор - naxa
Дата добавления - 06.11.2013 в 22:50
Вам ответили полностью. При этом решили вашу задачу.
Другие (и я в том числе) посчитали, что перед вами всего лишь стояла задача:
Идеальное форматирование сохраняется при экспорте в формате *.prn. Но итоговый файл должен быть с расширением *.txt . При этом текущее имя файла должно быть в формате текущей даты и времени
Мы всеми силами пытались вам подсказать, что достаточно (либо в вашем исходном коде, либо в коде Poltava) написать вместо ".prn" - ".txt"
[vba]
ActiveWorkbook.SaveAs Filename:=fn & dateFormat & ".txt", FileFormat:=xlTextPrinter, CreateBackup:=False
[/vba]
И всё. Здесь - не делают за вас. Здесь пытаются научить. А вы, судя по всему, даже и не пытались проверять работоспособность даваемых вам советов. Или не понимаете вообще, что написано в коде, а просто откуда-то его скопипастили, а теперь ещё и пытаетесь что-то доказывать. Это типа мы ещё и ваше драгоценное время потратили.
Вам ответили полностью. При этом решили вашу задачу.
Другие (и я в том числе) посчитали, что перед вами всего лишь стояла задача:
Идеальное форматирование сохраняется при экспорте в формате *.prn. Но итоговый файл должен быть с расширением *.txt . При этом текущее имя файла должно быть в формате текущей даты и времени
Мы всеми силами пытались вам подсказать, что достаточно (либо в вашем исходном коде, либо в коде Poltava) написать вместо ".prn" - ".txt"
[vba]
ActiveWorkbook.SaveAs Filename:=fn & dateFormat & ".txt", FileFormat:=xlTextPrinter, CreateBackup:=False
[/vba]
И всё. Здесь - не делают за вас. Здесь пытаются научить. А вы, судя по всему, даже и не пытались проверять работоспособность даваемых вам советов. Или не понимаете вообще, что написано в коде, а просто откуда-то его скопипастили, а теперь ещё и пытаетесь что-то доказывать. Это типа мы ещё и ваше драгоценное время потратили. AndreTM
Вам ответили полностью. При этом решили вашу задачу.
Другие (и я в том числе) посчитали, что перед вами всего лишь стояла задача:
Идеальное форматирование сохраняется при экспорте в формате *.prn. Но итоговый файл должен быть с расширением *.txt . При этом текущее имя файла должно быть в формате текущей даты и времени
Мы всеми силами пытались вам подсказать, что достаточно (либо в вашем исходном коде, либо в коде Poltava) написать вместо ".prn" - ".txt"
[vba]
ActiveWorkbook.SaveAs Filename:=fn & dateFormat & ".txt", FileFormat:=xlTextPrinter, CreateBackup:=False
[/vba]
И всё. Здесь - не делают за вас. Здесь пытаются научить. А вы, судя по всему, даже и не пытались проверять работоспособность даваемых вам советов. Или не понимаете вообще, что написано в коде, а просто откуда-то его скопипастили, а теперь ещё и пытаетесь что-то доказывать. Это типа мы ещё и ваше драгоценное время потратили. Автор - AndreTM
Дата добавления - 07.11.2013 в 01:42
Больше спасибо всем кто помог с кодом.
Да, действительно я не проверял советы! я их просто не увидел на фоне всего остального, что было написано. Приношу извинения, а так же благодарность Вам, AndreTM и Poltava за труд, буду проверять.
2AndreTM мне кажется это все лишнее, но если вам интересно то я прекрасно понимаю что написано в том что я предоставил, поскольку именно я это и писал. А в том что написал Poltava я, как вы верно указали, пока мало что понимаю. И да, время драгоценное и ваше и мое, не стоит вырывать отдельные слова из текста.
Больше спасибо всем кто помог с кодом.
Да, действительно я не проверял советы! я их просто не увидел на фоне всего остального, что было написано. Приношу извинения, а так же благодарность Вам, AndreTM и Poltava за труд, буду проверять.
2AndreTM мне кажется это все лишнее, но если вам интересно то я прекрасно понимаю что написано в том что я предоставил, поскольку именно я это и писал. А в том что написал Poltava я, как вы верно указали, пока мало что понимаю. И да, время драгоценное и ваше и мое, не стоит вырывать отдельные слова из текста. naxa
Да, действительно я не проверял советы! я их просто не увидел на фоне всего остального, что было написано. Приношу извинения, а так же благодарность Вам, AndreTM и Poltava за труд, буду проверять.
2AndreTM мне кажется это все лишнее, но если вам интересно то я прекрасно понимаю что написано в том что я предоставил, поскольку именно я это и писал. А в том что написал Poltava я, как вы верно указали, пока мало что понимаю. И да, время драгоценное и ваше и мое, не стоит вырывать отдельные слова из текста. Автор - naxa
Дата добавления - 23.11.2013 в 01:08
Ситуация: необходимо при нажатии на "Сохранить как" в появившемся диалоге сохранения заменить дефолтный тип файла на *.XLS. Если ли возможность произвести такую замену макросом?
Т.е. по логике мне нужно изменить FileFormat как в примере ниже, но SaveAs вызывать не из макроса, а обрабатывать "Сохранить как", который нажимает пользователь.
[vba]
Ситуация: необходимо при нажатии на "Сохранить как" в появившемся диалоге сохранения заменить дефолтный тип файла на *.XLS. Если ли возможность произвести такую замену макросом?
Т.е. по логике мне нужно изменить FileFormat как в примере ниже, но SaveAs вызывать не из макроса, а обрабатывать "Сохранить как", который нажимает пользователь.
[vba]
Ситуация: необходимо при нажатии на "Сохранить как" в появившемся диалоге сохранения заменить дефолтный тип файла на *.XLS. Если ли возможность произвести такую замену макросом?
Т.е. по логике мне нужно изменить FileFormat как в примере ниже, но SaveAs вызывать не из макроса, а обрабатывать "Сохранить как", который нажимает пользователь.
[vba]
Т.е. суть задачи в чем: мне нужно сохранить файл на рабочий стол, который выгружен из некой системы X. Это файл был загружен в саму систему X с расширением .XLS, но почему выгрузка файла из системы происходит нестабильно, и в один прекрасный момент дефолтное расширение файла меняется на .XLSX. В связи с этим, при попытке сохранения появляется информационное окно "Следующие компоненты невозможно сохранить в книге без поддержки макросов", поскольку тип .XLSX не поддерживает макросы. Именно поэтому мне нужно вернуть расширение .XLS обратно, чтобы сохранение проходило гладко.
Т.е. суть задачи в чем: мне нужно сохранить файл на рабочий стол, который выгружен из некой системы X. Это файл был загружен в саму систему X с расширением .XLS, но почему выгрузка файла из системы происходит нестабильно, и в один прекрасный момент дефолтное расширение файла меняется на .XLSX. В связи с этим, при попытке сохранения появляется информационное окно "Следующие компоненты невозможно сохранить в книге без поддержки макросов", поскольку тип .XLSX не поддерживает макросы. Именно поэтому мне нужно вернуть расширение .XLS обратно, чтобы сохранение проходило гладко. Assa
Этот параметр устанавливается в Параметрах Excel -- Сохранение -- Сохранять файлы в следующем формате.
Либо сохранять в формате .xlsm (с поддержкой макросов)
Этот параметр устанавливается в Параметрах Excel -- Сохранение -- Сохранять файлы в следующем формате.
Либо сохранять в формате .xlsm (с поддержкой макросов) Pelena
Этот параметр устанавливается в Параметрах Excel -- Сохранение -- Сохранять файлы в следующем формате.
Либо сохранять в формате .xlsm (с поддержкой макросов) Автор - Pelena
Дата добавления - 05.12.2016 в 15:43
ActiveWorkbook.SaveAs Filename:="D:\Пример1.xls", FileFormat:=xlExcel9795, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="D:\Пример1.xls", FileFormat:=xlExcel9795, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="D:\Пример1.xls", FileFormat:=xlExcel9795, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Kuzmich, мне не подходит такой вариант. Мне нужно не из VBA сохранять файл, а обрабатывать действие пользователя "Сохранить как", в это и беда
Kuzmich, мне не подходит такой вариант. Мне нужно не из VBA сохранять файл, а обрабатывать действие пользователя "Сохранить как", в это и беда Assa
Может я чего-то не понимаю?
При Сохранить как выбираете тип файла: как Книга Microsoft Excel 97-2003,
это и будет .xls
Может я чего-то не понимаю?
При Сохранить как выбираете тип файла: как Книга Microsoft Excel 97-2003,
это и будет .xls Kuzmich
Может я чего-то не понимаю?
При Сохранить как выбираете тип файла: как Книга Microsoft Excel 97-2003,
это и будет .xls Автор - Kuzmich
Дата добавления - 05.12.2016 в 16:57
Kuzmich, попробую объяснить по другому.
У меня есть excel файл (например Декларация.xls) и мне как ответственному лицу необходимо загрузить его в систему X, чтобы бухгалтера могли с ним работать. Я беру файл Декларация.xls и загружаю в эту самую систему X.
Теперь объясню, что делают бухгалтера. Например, им нужно сформировать налоговую декларацию. Они логинятся с системе X, запускают некий отчет по налоговой декларации, который использует мой файл Декларация.xls. Отчет сформировался, бухгалтер получил заполненный файл и хочет его сохранить у себя на рабочем столе. Он нажимает Файл -> Сохранить как. Вот в этот момент мне нужно, чтобы в поле Тип файла, был тип *.xls. Чтобы бухгалтеру не нужно было выбирать тип файла из списка.
Вот в чем беда системы X: Если бухгалтер формирует декларацию первый раз, то расширение файла подтягивается верно, но если пользователь не закрыв отчет ещё раз нажмет на Файл->Сохранить как, то в поле Тип файла подтягивается не *.xls, а *.xlsx. Это у системы X такой баг. Со стороны системы этот баг устранить не удалось, именно поэтому я и пытаюсь решить проблему со стороны Excel.
Зачем мне это нужно: потому что бухгалтера, да и многие другие пользователи достаточно ленивы, чтобы выбирать там что-то из списка и нажимать лишние кнопки. Боюсь, что некоторые из пользователей даже не ведают, что такое расширение файла. Нужна любая рабочая идея. Тот код, который вы предложили не изменит тип файла в вызываемом диалоговом окне, а откроет дополнительный диалог. Таким образом их будет аж 2: первый вызванный из VBA, а второй стандартный excel-й.
Kuzmich, попробую объяснить по другому.
У меня есть excel файл (например Декларация.xls) и мне как ответственному лицу необходимо загрузить его в систему X, чтобы бухгалтера могли с ним работать. Я беру файл Декларация.xls и загружаю в эту самую систему X.
Теперь объясню, что делают бухгалтера. Например, им нужно сформировать налоговую декларацию. Они логинятся с системе X, запускают некий отчет по налоговой декларации, который использует мой файл Декларация.xls. Отчет сформировался, бухгалтер получил заполненный файл и хочет его сохранить у себя на рабочем столе. Он нажимает Файл -> Сохранить как. Вот в этот момент мне нужно, чтобы в поле Тип файла, был тип *.xls. Чтобы бухгалтеру не нужно было выбирать тип файла из списка.
Вот в чем беда системы X: Если бухгалтер формирует декларацию первый раз, то расширение файла подтягивается верно, но если пользователь не закрыв отчет ещё раз нажмет на Файл->Сохранить как, то в поле Тип файла подтягивается не *.xls, а *.xlsx. Это у системы X такой баг. Со стороны системы этот баг устранить не удалось, именно поэтому я и пытаюсь решить проблему со стороны Excel.
Зачем мне это нужно: потому что бухгалтера, да и многие другие пользователи достаточно ленивы, чтобы выбирать там что-то из списка и нажимать лишние кнопки. Боюсь, что некоторые из пользователей даже не ведают, что такое расширение файла. Нужна любая рабочая идея. Тот код, который вы предложили не изменит тип файла в вызываемом диалоговом окне, а откроет дополнительный диалог. Таким образом их будет аж 2: первый вызванный из VBA, а второй стандартный excel-й. Assa
У меня есть excel файл (например Декларация.xls) и мне как ответственному лицу необходимо загрузить его в систему X, чтобы бухгалтера могли с ним работать. Я беру файл Декларация.xls и загружаю в эту самую систему X.
Теперь объясню, что делают бухгалтера. Например, им нужно сформировать налоговую декларацию. Они логинятся с системе X, запускают некий отчет по налоговой декларации, который использует мой файл Декларация.xls. Отчет сформировался, бухгалтер получил заполненный файл и хочет его сохранить у себя на рабочем столе. Он нажимает Файл -> Сохранить как. Вот в этот момент мне нужно, чтобы в поле Тип файла, был тип *.xls. Чтобы бухгалтеру не нужно было выбирать тип файла из списка.
Вот в чем беда системы X: Если бухгалтер формирует декларацию первый раз, то расширение файла подтягивается верно, но если пользователь не закрыв отчет ещё раз нажмет на Файл->Сохранить как, то в поле Тип файла подтягивается не *.xls, а *.xlsx. Это у системы X такой баг. Со стороны системы этот баг устранить не удалось, именно поэтому я и пытаюсь решить проблему со стороны Excel.
Зачем мне это нужно: потому что бухгалтера, да и многие другие пользователи достаточно ленивы, чтобы выбирать там что-то из списка и нажимать лишние кнопки. Боюсь, что некоторые из пользователей даже не ведают, что такое расширение файла. Нужна любая рабочая идея. Тот код, который вы предложили не изменит тип файла в вызываемом диалоговом окне, а откроет дополнительный диалог. Таким образом их будет аж 2: первый вызванный из VBA, а второй стандартный excel-й. Автор - Assa
Дата добавления - 05.12.2016 в 17:40
Читайте также: