PATRI0T Пользователь Сообщений: 5 |
#1 05.10.2017 11:28:30 Добрый день. Что делаю:
Этой процедурой удаляю макросы (пытаюсь)
В результате Вопрос. Прикрепленные файлы
|
||||
_Igor_61 Пользователь Сообщений: 3007 |
Можно. Побаловался макрорекордером и у меня получилось |
PATRI0T Пользователь Сообщений: 5 |
#3 06.10.2017 08:17:17 Спасибо за ответ А зачем это?
|
||
Александр П. Пользователь Сообщений: 1147 |
#4 06.10.2017 08:53:07 PATRI0T, Код ниже удаляет весь код во всех модулях активной книги.
|
||
_Igor_61 Пользователь Сообщений: 3007 |
#5 06.10.2017 09:07:38
Покажите Ваш файл с кодом, который не работает. Смею предположить, что Вы что-то не так или не туда вставили или что-то не так сделали, а так же невнимательно посмотрели код, иначе не возникло бы вопроса:[QUOTE]PATRI0T написал: А зачем это? Kill Addr & «Файл без макросов 2007.xlsx[/CODE] |
||
_Igor_61 Пользователь Сообщений: 3007 |
Александр, здравствуйте! Но тогда пользователю нужно лезть в параметры, ставить доверенный доступ и перезапускать приложение, что для пользователя, думаю не очень удобно. Поэтому по-моему проще это все сделать просто пересохранением файлов, а потом лишний файл удалить. ИМХО, конечно |
_Igor_61, ну так, наше дело предложить вариант . Изменено: Александр П. — 06.10.2017 10:19:58 |
|
sokol92 Пользователь Сообщений: 4446 |
Уважаемый PATRI0T, в приложенном к сообщению файле макросов нет, зато есть два «битых» имени книги. Удалите их через «Диспетчер имен» и проблема с открытием должна уйти. |
_Igor_61 Пользователь Сообщений: 3007 |
#9 07.10.2017 00:34:38
Да, если это так, то не удивительно, что у него мой макрос не работает, если он его в xls помещает. Но почему-то он про этот момент молчит. А я решил, что у него изначальный файл в xlsm, глядя на картинку |
||
LAD Пользователь Сообщений: 22 |
Вы копируете лист со всеми потрохами. Копируйте только то, что Вам нужно. Сделайте новый лист и на него скопируйте диапазон ячеек. Изменено: LAD — 07.10.2017 04:58:21 |
RAN Пользователь Сообщений: 7091 |
#11 07.10.2017 09:48:49
_Igor_61, Вставьте это в модуль копируемого листа, и вау съедят мыши.
Изменено: RAN — 07.10.2017 10:51:58 |
||||
_Igor_61 Пользователь Сообщений: 3007 |
RAN, не, не съедят, еще больше «ВАУ»! |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
$ в имени переменной — это тип (аналог as String). Вот табличка соответствий: // xlCSVWindows = 23; // основные константы 2007 // 57 = PDF |
_Igor_61 Пользователь Сообщений: 3007 |
Блин, как же я люблю этот форум! Каждый раз какое-то «ВАУ» для себя нахожу! Юрий М, спасибо большое! Сохранил Ваши пояснения, они очень пригодятся в дальнейшем. Не знал, что части кода можно цифрами задавать (хотя, нет, пример уже знаю — в MsgBox 64, 32, 48), это, видимо, что-то подобное, если правильно понимаю. Т.е. вместо «xlOpenXMLWorkbook (without macro’s in 2007-2010, xlsx) » пишем «51» и выполняется это действие, так? И я так понимаю, что RAN своим кодом вносит изменения в XML? Дальше — вообще не понимаю — ведь если открыть файл через WinRAR, там же куча папок и файлов XML, т.е. в данном случае через «51» производятся манипуляции с конкретным XML файлом, «51» его находит и выполняет свою задачу? |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
XML тут нет ) Просто заменяем длинную строку числом ) |
_Igor_61 Пользователь Сообщений: 3007 |
xlOpenXMLWorkbook — тогда это просто указание на книгу xlsx 2007-2010, этим кодом ее открываем? |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
Нет, открываем по имени, а это указание ТИПА файла — книга без макросов. |
_Igor_61 Пользователь Сообщений: 3007 |
А, кажется понял: ActiveWorkbook.SaveAs sfName1, 51 — сохраняем активную книгу с заданным именем (sfName1) в xlsx (xlOpenXMLWorkbook (without macro’s in 2007-2010, xlsx) . И равнозначно — можно записать текстом «xlOpenXMLWorkbook (without macro’s in 2007-2010, xlsx», а можно «51». Я правильно понимаю? |
Николай Пользователь Сообщений: 229 |
RAN, ваш макрос в личную книгу макросов. Что нужно изменить что бы макрос заработал из личной книги макросов. Из листа текущей книги отрабатывает корректно. Изменено: Николай — 07.10.2017 19:42:37 |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
|
_Igor_61 Пользователь Сообщений: 3007 |
|
RAN Пользователь Сообщений: 7091 |
sfName1 =
ActiveWorkbook.FullName Изменено: RAN — 07.10.2017 20:30:39 |
RAN Пользователь Сообщений: 7091 |
_Igor_61, |
Николай Пользователь Сообщений: 229 |
Кнопка цитирования не для ответа [МОДЕРАТОР] sfName1 = ActiveWorkbook.FullName |
Николай Пользователь Сообщений: 229 |
#25 07.10.2017 21:46:53 На тестовой книге.
И скрин ошибки. Прикрепленные файлы
|
||
Николай Пользователь Сообщений: 229 |
#26 07.10.2017 21:49:24 Опа.
Решило проблему. |
||
Николай Пользователь Сообщений: 229 |
#27 08.10.2017 09:51:08 Вот как стал выглядеть код в итоге.
Огромная благодарность RAN, за его код сохранения файлов. Изменено: Николай — 08.10.2017 12:38:36 |
||
LAD Пользователь Сообщений: 22 |
#28 08.10.2017 14:57:17 Не думал, что можно так сильно извратить. |
Сохранить файл без макросов |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Создать макрос в Excel можно, запустив средство записи макросов или с помощью редактора Visual Basic для приложений (VBA). После создания макроса следует сохранить его для возможности повторного использования в текущей или в других книгах.
Сохранение макроса в текущей книге
Если понадобится использовать макрос только в той книге, где он был создан, нажмите кнопку Сохранить или Сохранить как так же, как при обычном сохранении. Но сохранение книги с макросами происходит несколько иначе, поскольку необходимо использовать специальный формат файла «с поддержкой макросов». Поэтому при попытке сохранить макрос Excel предложит два варианта:
-
Сохранить в виде книги с поддержкой макросов (XLSM-файл), выбрав Нет.
-
Сохранить в виде книги без поддержки макросов, выбрав Да.
Чтобы сохранить макрос как книгу с поддержкой макросов,
-
щелкните Нет.
-
В окне Сохранить как в раскрывающемся списке Тип файла выберите Книга Excel с поддержкой макросов.
-
Нажмите кнопку Сохранить.
Создание и сохранение макросов в личной книге
Чтобы макросы были доступны при каждом запуске Excel, создайте их в книге «Personal.xlsb». Это скрытая книга на вашем компьютере, которая открывается при каждом запуске Excel. Для получения сведений о выполнении этих действий см. статью Создание и сохранение всех макросов в одной книге.
Нужна дополнительная помощь?
1 / 1 / 1 Регистрация: 26.04.2014 Сообщений: 119 |
|
1 |
|
Сохранить файл без макросов10.02.2015, 17:16. Показов 7615. Ответов 7
Есть один файл, с одним листом. Называется он oo.xls. Как его сохранить как ooo.xls без макросов, и закрыть?Windows(«oo.xls»).SaveAs ooo.xls сохраняет его с макросами.
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
10.02.2015, 17:29 |
2 |
Если Эксель позволяет — сохраните как xlsx, закройте, затем можно открыть и сохранить как xls.
0 |
1 / 1 / 1 Регистрация: 26.04.2014 Сообщений: 119 |
|
10.02.2015, 17:32 [ТС] |
3 |
не позволяет.
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
10.02.2015, 18:04 |
4 |
Для 2003 есть патч.
0 |
2670 / 786 / 176 Регистрация: 14.01.2013 Сообщений: 3,676 |
|
10.02.2015, 19:24 |
5 |
Если сам лист не содержит кода макросов, то создать новую книгу, скопировать туда лист и сохранить. Если лист с кодом, то данные с листа скопировать в новую книгу, с сохранением оформления.
0 |
0 / 0 / 0 Регистрация: 29.05.2019 Сообщений: 10 |
|
03.09.2019, 09:53 |
8 |
поправка предыдущий пример выдает ошибку. формат — xlOpenXMLWorkbook
0 |
Сохранение файла рабочей книги Excel, существующего или нового, с помощью кода VBA. Методы Save и SaveAs объекта Workbook, параметр SaveChanges метода Close.
Сохранение существующего файла
Сохранить существующий открытый файл рабочей книги Excel из кода VBA можно несколькими способами. В примерах используется выражение ActiveWorkbook, которое может быть заменено на ThisWorkbook, Workbooks(«ИмяКниги.xlsx»), Workbooks(myFile.Name), где myFile — объектная переменная с присвоенной ссылкой на рабочую книгу Excel.
Простое сохранение файла после внесенных кодом VBA Excel изменений:
Сохранение файла под другим именем (исходная рабочая книга будет автоматически закрыта без сохранения внесенных изменений):
ActiveWorkbook.SaveAs Filename:=«C:ТестоваяНоваяКнига.xlsx» |
Сохранить файл рабочей книги можно перед закрытием, используя параметр SaveChanges метода Close со значением True:
ActiveWorkbook.Close SaveChanges:=True |
Чтобы закрыть файл без сохранения, используйте параметр SaveChanges метода Close со значением False:
ActiveWorkbook.Close SaveChanges:=False |
Сохранение файла под другим именем при закрытии рабочей книги:
ActiveWorkbook.Close SaveChanges:=True, Filename:=«C:ТестоваяНоваяКнига.xlsx» |
Если в примерах с методом Close параметр SaveChanges пропустить, будет открыто диалоговое окно с запросом о сохранении файла.
Новая книга сохраняется с указанием полного имени:
Workbooks.Add ActiveWorkbook.SaveAs Filename:=«C:ТестоваяНоваяКнига.xlsx» |
После этого к новой книге можно обращаться по имени: Workbooks ("НоваяКнига.xlsx")
.
Если не указать полное имя для сохраняемого файла:
Workbooks.Add ActiveWorkbook.Save |
тогда новая книга будет сохранена с именем и в папке по умолчанию, например: Книга1.xlsx, Книга2.xlsx, Книга3.xlsx и т.д. в папке «Документы».