Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2013, 11:41   #1
Whizer
Пользователь
 
Регистрация: 25.06.2013
Сообщений: 17
По умолчанию Сохранение файла по указанному пути без открытия с удалением макросов

Здравствуйте! )
Ребята, выручайте.
Нужен макрос, сохраняющий файл с удалением в нём макроса по прописанному пути (в теле макроса), ничего, якобы, сложного. Но! для удобства хотелось бы иметь немного другой функционал.
Попытаюсь подробно описать:

Сейчас происходит так, что после сохранения файла (по указанному пути через макрос) открывается сохранённый файл, а исходник закрывается, а т.к. при сохранении макрос удаляется, то продолжить работу с файлом после его сохранения нельзя (нужно закрывать файл и открывать исходник).

Прошу помощи в написании макроса, который бы позволил сохранять файл c удалением макросов в нём так, чтобы при сохранении не открывался сохранённый файл и продолжалась работа с исходником.

Надеюсь на помощь.
Whizer вне форума Ответить с цитированием
Старый 09.07.2013, 11:49   #2
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Сохраняйте файл в формате xlsx и в нем не будет никаких макросов. (При условии что ваш офис это 2007 и выше)
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 09.07.2013, 11:53   #3
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

используйте savecopyas
slan вне форума Ответить с цитированием
Старый 09.07.2013, 13:33   #4
Whizer
Пользователь
 
Регистрация: 25.06.2013
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Watcher_1 Посмотреть сообщение
Сохраняйте файл в формате xlsx и в нем не будет никаких макросов. (При условии что ваш офис это 2007 и выше)
Ругается. "...Формат или расширение являются недопустимыми. Убедитесь, что файл не повреждён и расширение его имени соответствует его формату."

slan, спасибо большое )

Одна проблема решилась, другая возникла, ну как всегда... )
Теперь сохраняется копия файла (это хорошо), но в исходнике умирают все макросы (это плохо).
Как сделать, чтобы макросы удалились в копии, а в исходнике остались?
Whizer вне форума Ответить с цитированием
Старый 09.07.2013, 14:52   #5
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Цитата:
Сообщение от Whizer Посмотреть сообщение
Ругается. "...Формат или расширение являются недопустимыми. Убедитесь, что файл не повреждён и расширение его имени соответствует его формату."
А как вы это делаете?
Пример кода можно?
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 09.07.2013, 14:59   #6
Whizer
Пользователь
 
Регистрация: 25.06.2013
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Watcher_1 Посмотреть сообщение
А как вы это делаете?
Пример кода можно?
Разумеется:

Код:
Sub SaveForm_Click()
iPath$ = "Путь сохранения"
    If Dir(iPath$, vbDirectory) = "" Then
       MsgBox "Сообщение об ошибке", vbExclamation
       Exit Sub
    End If
strFileName = Worksheets("Time").Range("F1").Value
 On Error Resume Next
    If Len(strFileName) < 1 Then
        MsgBox "Сообщение о незаполненных необходимых данных", vbCritical
        Range("C1").Select
        End
    End If
Worksheets("Time").Range("A1").Select
    ActiveWorkbook.SaveCopyAs Filename:=iPath$ + strFileName + ".xlsx"
MsgBox "Файл успешно сохранён: " + iPath$ + strFileName + ".xlsx"
End Sub
Whizer вне форума Ответить с цитированием
Старый 09.07.2013, 15:04   #7
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Вот так попробуйте
Код:
ActiveWorkbook.SaveCopyAs Filename:=iPath$ + strFileName + ".xlsx", FileFormat:=xlOpenXMLWorkbook
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 09.07.2013, 15:17   #8
Whizer
Пользователь
 
Регистрация: 25.06.2013
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Watcher_1 Посмотреть сообщение
Вот так попробуйте
Код:
ActiveWorkbook.SaveCopyAs Filename:=iPath$ + strFileName + ".xlsx", FileFormat:=xlOpenXMLWorkbook
Named argument not found.
Whizer вне форума Ответить с цитированием
Старый 09.07.2013, 15:24   #9
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

наверное, все таки лучше сделать так:

Код:
Dim s$
s = ThisWorkbook.FullName
With ActiveWorkbook
    .SaveAs "svnomacro" + ".xlsx", 51
    Workbooks.Open s
    .Close
End With
slan вне форума Ответить с цитированием
Старый 09.07.2013, 17:39   #10
Whizer
Пользователь
 
Регистрация: 25.06.2013
Сообщений: 17
По умолчанию

Сделал следующим образом.
Код:
wb.Sheets(Array("Имя листа")).Copy
ActiveWorkbook.SaveAs Filename:="Имя файла.xlsx", FileFormat:=xlOpenXMLWorkbook, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Close
wb.Activate
Если нужно скопировать всю книгу, то удаляем строчки wb. или перечисляем все листы.
Whizer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение без поддержки макросов Simbad Microsoft Office Excel 1 14.03.2012 12:57
загрузка картинки в Image по указанному пути Jene4ka БД в Delphi 21 01.05.2011 00:08
не сохраняет картинку по указанному пути Человек_Борща Общие вопросы Delphi 3 11.04.2010 21:14
Сохранить копию файла без макросов viter.alex Microsoft Office Excel 3 19.02.2009 13:49
сохранение таблицы без макросов Юнлинг Microsoft Office Excel 5 27.11.2008 13:26