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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2011, 10:30   #1
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию Копирование в новую книгу с именем из ячейки

Друзья, помогите, пожалуйста, с макросом.

Я искал по форуму, есть подобные решения, но всё не то.

Возможно ли такое решение задачи?

Необходимо скопировать лист 1 из основного файла в новый файл с именем из ячейки D9, копируемый лист должен иметь имя из ячейки F7.
Новый файл должен создаваться автоматически в той же директории где и основной. Если название такого файла уже существует, то не создавать новый, а просто добавить в него следующий лист, который будет иметь имя из ячейки F7.
Т.е. в основной книге D9 может быть одинаковым, а F7 будет меняться.
Вложения
Тип файла: rar пример.rar (12.8 Кб, 10 просмотров)
oleg_sh вне форума Ответить с цитированием
Старый 22.07.2011, 11:09   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте. Можете разместить макрос в Personal.xls. Он работает с текущим листом.
Код:
Sub oleg_sh()
Dim ash As Worksheet, n$, m$
Set ash = ActiveSheet
n = ActiveWorkbook.Path & "\" & [D9]
m = Dir(n & ".xl*")
If m = "" Then
    ActiveSheet.Copy
    ActiveSheet.Name = ash.[F7]
    ActiveWorkbook.Close True, n & ".xls"
    MsgBox "Создан новый файл", vbInformation
Else
    With Workbooks.Open(ActiveWorkbook.Path & "\" & m)
        ash.Copy After:=.Sheets(.Sheets.Count)
        On Error Resume Next
        ActiveSheet.Name = ash.[F7]
        If Err Then MsgBox "Невозможно переименовать лист", vbCritical: Exit Sub
        .Close True
    End With
    MsgBox "Лист скопирован", vbInformation
End If
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 22.07.2011, 11:48   #3
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Пробуйте. Можете разместить макрос в Personal.xls. Он работает с текущим листом.
Код:
Sub oleg_sh()
Спасибо, Казанский, всё работает.
Нельзя ли в Ваш код добавить, чтобы копировались только значения без фомул, если они существуют и (без кнопок, если это возможно).

И ещё при открытии созданного файла всегда выскакивает окно, что расширение файла отличается от указываемого.

Personal.xls не совсем понял что это. Посмотрите, я так сделал?
Вложения
Тип файла: rar пример2.rar (20.8 Кб, 14 просмотров)
oleg_sh вне форума Ответить с цитированием
Старый 25.07.2011, 14:48   #4
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Огромное спасибо, Казанский!!!
Жаль, что больше никто не предложил своего решения.
Т.к. в решении Казанского копируется лист, а было бы хорошо только данные как при "специальной вставке/только значения", но с сохранением формата.
Тогда и Excel не ругался бы, а то это вечная война форматов 2003 и 2007.
Я вообще не верил, что моя задачка выполнима! Супер!
oleg_sh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать лист в новую книгу m-1 Microsoft Office Excel 4 17.03.2011 18:26
Создавать новую книгу в формате 2007 alebed Microsoft Office Excel 0 01.09.2010 17:12
Несовпадения в новую книгу. iamhelen Microsoft Office Excel 4 27.04.2010 16:47
Копирование диаграмм в новую книгу juliaowen Microsoft Office Excel 1 30.10.2009 11:06
Перенести в новую книгу отмеченые строки Rom1k06 Microsoft Office Excel 11 31.07.2008 12:22