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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2011, 14:38   #1
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию Как сделать активной новую Книгу?

Уважаемые форумчане.
Есть такой код:
1. Открыта Книга113
2. С помощью кода создаем новую книгу Книга1. Здесь она еще не сохранена на диске, а находится в памяти ПК.
3. В ячейку Книги1 вносим данные.
4. Сохраняем Книгу1 на диске.
5. Закрываем Книгу1.
6. Удаляем Книгу1 с диска.
7. Закрываем Excel, в котором была создана Книга1.

Подскажите, пожалуйста, два вопроса.
1. В пункте 2, где Книга1 еще не сохранена, есть ли возможность активации Книги113, затем активации Книги1. Т.е. здесь передача активации между книгами возможна.
2. Пункт7 - как закрыть Excel, в котором создавалась Книга1, а Книга113 оставалась бы открытой. Здесь, видимо, тот же вопрос активации.

Как Вы понимаете, действия с Книгой1 должны происходить в скрытом от пользователя режиме. Постоянно открыта только Книга113.

Код:
Sub Кнопка1_Щелкнуть()
Dim oExcel As New Excel.Application 'Запускаем Excel
oExcel.Visible = True 'Делаем его видимым
Dim oWbk As Excel.Workbook 'Создаем новую книгу Книга1
Set oWbk = oExcel.Workbooks.Add()
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item("Лист1") 'Находим Лист1
oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
Dim oRange As Range 'Находим диапазон A1 в Книга1
Set oRange = oSheet.Range("A1")
oRange.Value = "Данные" 'вносим в него данные
'сохраняем файл с новым названием в указанное место на диск
'методом SaveAs
oWbk.SaveAs "D:\Книга1.xls"
oWbk.Close 'закрываем файл Книга1
Kill "D:\Книга1.xls" 'удаляем файл Книга1 с диска
‘oWbk.Quit?????????
End Sub
Sergey112233 вне форума Ответить с цитированием
Старый 24.07.2011, 15:11   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

3. В ячейку Книги1 вносим данные.
4. Сохраняем Книгу1 на диске.
5. Закрываем Книгу1.
6. Удаляем Книгу1 с диска.
Где логика,если вы ее удаляете.
Какое предназначение Книги1.
Неужели для проведения каких то расчетов
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.07.2011, 15:19   #3
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Из книги113 будут браться почтовые адреса.
Книга1 будет отправляться с внесенными данными по почте (как файл или в теле письма) Далее Книга1 будет не нужна.
Sergey112233 вне форума Ответить с цитированием
Старый 24.07.2011, 15:34   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Не надо создавать новый экземпляр Экса.
Код:
Sub Кнопка1_Щелкнуть()
    Dim oWbk As Workbook    'Создаем новую книгу Книга1
    Set oWbk = Workbooks.Add()
    Dim oSheet As Worksheet
    Set oSheet = oWbk.Worksheets("Лист1")    'Находим Лист1
    oSheet.Name = "Новый лист"    'Присваиваем ему имя "Новый лист"
    Dim oRange As Range    'Находим диапазон A1 в Книга1
    Set oRange = oSheet.Range("A1")
    oRange.Value = "Данные"    'вносим в него данные
    'сохраняем файл с новым названием в указанное место на диск
    'методом SaveAs
    oWbk.SaveAs "D:\Книга1.xls"
    oWbk.Close    'закрываем файл Книга1
    Kill "D:\Книга1.xls"    'удаляем файл Книга1 с диска
End Sub
И активируйте какую надо(хотя тоже - зачем?).
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 24.07.2011 в 15:47.
kuklp вне форума Ответить с цитированием
Старый 24.07.2011, 15:35   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А если создавать скрытый лист в книге 123 заполнить его и отправить по почте,затем его удалить
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.07.2011, 15:39   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Серег, автор предполагает отправку через СDO, поэтому все равно лист придется сохранять. Хотя... не знаю, может и можно в кач-ве аттача указать лист. Не пробовал.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 24.07.2011 в 15:42.
kuklp вне форума Ответить с цитированием
Старый 24.07.2011, 15:42   #7
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Сделал так. Получается что oSheet.SaveAs "D:\Книга1.xls"
и oWbk.SaveAs "D:\Книга1.xls"
работают одинаково?

Код:
Sub Кнопка1_Щелкнуть()
Application.ScreenUpdating = False

Dim oWbk As Excel.Workbook 'Создаем новую книгу Книга1
Set oWbk = Workbooks.Add
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item("Лист1") 'Находим Лист1
oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
Dim oRange As Range 'Находим диапазон A1 в Книга1
Set oRange = oSheet.Range("A1")
oRange.Value = "Данные" 'вносим в него данные
'сохраняем файл с новым названием в указанное место на диск
'методом SaveAs
oSheet.SaveAs "D:\Книга1.xls"
oWbk.Close 'закрываем файл Книга1
Kill "D:\Книга1.xls" 'удаляем файл Книга1 с диска
Application.ScreenUpdating = True

End Sub
Sergey112233 вне форума Ответить с цитированием
Старый 24.07.2011, 15:47   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Серег, автор предполагает отправку через СDO, поэтому все равно лист придется сохранять. Хотя... не знаю, может и можно в кач-ве аттача указать лист. Не пробовал.
Да я все понял Серёжа.
Лист делаешь видимым,сохраняешь как книгу и отправляешь.Это само собой подразумевается.Я бы так делал
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.07.2011, 15:54   #9
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Я тоже делал так:-) Только не скрывал листы. Мне это незачем.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 24.07.2011, 15:57   #10
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Отправку надо сделать в фоновом режиме, чтобы не мешала основной работе.
Sergey112233 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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
Как сделать форму всегда активной? londoner Общие вопросы Delphi 3 04.03.2007 14:44