Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 93
1

Сохранить КОПИЮ файла в формате .xlsx

21.09.2018, 20:30. Просмотров 6031. Ответов 8
Метки нет (Все метки)


Как сохранить копию файла по определенном пути без макросов.
Такой пример не удачный, так как файл .xlsx, который якобы сохранился, при открытии ругается что расширение и формат являются не допустимыми

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Dim x As String
    strPath = "W:\Отчетность\"
    On Error Resume Next
    x = GetAttr(strPath) And 0
    If Err = 0 Then
        strDate = Format(Now, "dd-mm-yy hh-mm")
        FileNameXls = strPath & "\" & "Отчет" & " " & strDate & ".xlsx"
        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
    Else
        MsgBox " " & strPath & " ", vbCritical
    End If

Есть способ сохранить КОПИЮ файла в формате .xlsx ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2018, 20:30
Ответы с готовыми решениями:

VBA Excel Сохранение в формате xlsx
Возможно и как сохранить макрос и форму на писанные на VBA в формате документа xlsx, а не в xlsm....

Сохранить копию книги в Excel 2007
есть книга с макросами, созданная в Excel 2010. После открытия книги пользователь производит с ней...

сохранить копию doc без макросов
Здравствуйте есть 2.doc с макросами, как с помощью vba его же скопировать но уже что бы в нём не...

Как при нажатии кнопки "сохранить" выдать окно с выбором места сохранения и сохранить текст, написанный в ТекстБокс, в формате .doc(x)
Уважаемы дамы и господа! Требуется чтоб при нажатии кнопки "сохранить" программа выводила окно с...

__________________
Помогаю в написании студенческих работ здесь.
8
Заблокирован
21.09.2018, 20:37 2
Sub SaveAs([Filename], [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AccessMode As XlSaveAsAccessMode = xlNoChange], [ConflictResolution], [AddToMru], [TextCodepage], [TextVisualLayout], [Local])
Member of Excel.Workbook
1
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 93
21.09.2018, 21:38  [ТС] 3
SaveAs сохраняет файл, в котором выполняется макрос.
А нужно чтобы в конце выполнения макроса сохранилась копия файла по другому пути без макросов в формате xlsx
0
15016 / 6344 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
21.09.2018, 23:54 4
Лучший ответ Сообщение было отмечено Heroes как решение

Решение

Heroes, сначала SaveCopyAs, потом открыть и сохранить в нужном формате. Допилите по необходимости.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub ExportAsXLSX()
Const strPath = "W:\Отчетность\"
Dim x
  On Error GoTo 1
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  x = strPath & Format(Now, "hhmmss") & ActiveWorkbook.Name
  ActiveWorkbook.SaveCopyAs x
  With Workbooks.Open(x)
    .SaveAs strPath & Format(Now, "Отчет dd-mm-yy hh-mm.xl\sx"), xlOpenXMLWorkbook
    .Close 0
  End With
  Kill x
1 Application.ScreenUpdating = True
  Application.DisplayAlerts = True
End Sub
GetAttr(strPath) And 0 всегда будет 0.
1
6820 / 2762 / 520
Регистрация: 19.10.2012
Сообщений: 8,422
22.09.2018, 18:41 5
Если меняете формат (да ещё и содержимое) - как это может быть КОПИЕЙ?
0
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 93
22.09.2018, 21:21  [ТС] 6
Цитата Сообщение от Hugo121 Посмотреть сообщение
Если меняете формат (да ещё и содержимое) - как это может быть КОПИЕЙ?
Ок, это Не копия,
а копия файла с заменой формата с xlsm на xlsx (содержимое например не меняется).
0
6820 / 2762 / 520
Регистрация: 19.10.2012
Сообщений: 8,422
22.09.2018, 21:25 7
Ну вот потому SaveCopyAs никак и не подходит.
1
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 93
22.09.2018, 21:56  [ТС] 8
Цитата Сообщение от Hugo121 Посмотреть сообщение
Ну вот потому SaveCopyAs никак и не подходит.
вы правы не подходит,
тогда вариант сделать SaveCopyAs, открыть эту копию, выполнить SaveAs в нужном формате, ТОлько такой вариант?
Вроде рабочий вариант, но так получается цепочка с 3- файлов(1. Исходный файл, где макрос. 2. Файл "SaveCopyAs". 3. Copy-файл в нужном формате
Если бы сделать все с цепочки 2-х файлов (1. Исходный файл, где макрос. 2. копия файла с заменой формата с xlsm на xlsx


Есть еще идеи?
0
6820 / 2762 / 520
Регистрация: 19.10.2012
Сообщений: 8,422
22.09.2018, 22:30 9
Можно не делать копию, а сразу сохранять книгу в нужном виде - но тогда эта конкретная активная книга и будет уже в другом формате, и если Вы хотите продолжать работать с нею в том первозданном виде - нужно её снова открывать. А эту - закрывать.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2018, 22:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Word 2007: сохранить копию документа перед выполнением макроса
Здравствуйте, помогите с макросом, который сохраняет копию файла с именем открытого документа. Файл...

Сохранить книгу в формате csv
Товарищи, помогите разобраться. Хочу настроить макрос таким образом, чтобы активная книга...

Обработка данных другого файла *.xlsx
Добрый день! Прошу помочь разобраться со следующей задачей. У нас в банке каждую неделю...

Создание файла *.xls (*.xlsx) по заданному пользователем адресу
Подскажите, пожалуйста, 2 функции: 1. функция создает файл с именем Name.xls в папке Path. 2....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.