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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2011, 16:16   #1
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию загрузить лист из одной книги в другую

Как прописать кнопку VBA чтобы Лист1 из Книги 1 загрузился на место Лист 1 Книги 2. И при каждом нажатии этой кнопки содержимое Листа удалялось и заменялось на новое.
Заранее спасибо!
johny_03 вне форума Ответить с цитированием
Старый 02.04.2011, 23:12   #2
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Sub Кнопка1_Щелчок()
''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''
If Len(Dir$("C:\Книга2.xls")) = 0 Then ' проверка доступности рабочей книги
MsgBox "C:\Книга2.xls" & " недоступна "
Exit Sub
End If
''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''' '
Лист1.Range("C3").Value = Time
Лист1.Range("A1:C5").Select ' диапазон или весь лист
Selection.Copy
''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''' ''
Workbooks.Open("C:\Книга2.xls").Act ivate
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
ActiveWorkbook.Save ' сохранить
ActiveWorkbook.Close ' закрыть
End Sub
Алексей Трошкин вне форума Ответить с цитированием
Старый 05.04.2011, 12:23   #3
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

что-то не работает. Подскажите в чем ошибка. В книгу "сортировка.xls" в Лист1 нужно загрузить Лист1 из книги "1.xls". Я прописал кнопку "Загрузить", но пишет ошибку.

Огромное спасибо!
Вложения
Тип файла: rar сортитовка.rar (164.9 Кб, 8 просмотров)
Тип файла: rar 1.rar (9.4 Кб, 11 просмотров)
johny_03 вне форума Ответить с цитированием
Старый 05.04.2011, 23:24   #4
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Sub Перенос()
If Len(Dir$("C:\1.xls")) = 0 Then ' проверка доступности рабочей книги
MsgBox "C:\1.xls" & " недоступна "
Exit Sub
Else
MsgBox "C:\1.xls" & " доступна "
End If
''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''' '
Workbooks.Open("C:\1.xls").Activate
ActiveSheet.Range("A1:E200").Select ' диапазон или весь лист
Selection.Copy
ThisWorkbook.Activate 'или Workbooks("сортитовка.xls").Activat e активируем книгу из которой исплняем макрос
ThisWorkbook.Worksheets("Лист1").Ac tivate ' активируем нужный лист
ActiveSheet.Range("A1").Select ' активируем ячейку с которой делаем вставку
ActiveSheet.Paste
Workbooks.Open("C:\1.xls").Close ' закрываем ненужный лист

End Sub
'попробуй это у меня прекрасно работает или всё дело в слове "сортитовка"
Алексей Трошкин вне форума Ответить с цитированием
Старый 05.04.2011, 23:56   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Я так переделал код Алексея Трошкина
Код:
Private Sub CommandButton4_Click()
If Len(Dir$("C:\1.xls")) = 0 Then ' проверка доступности рабочей книги
MsgBox "C:\1.xls" & " файл недоступен "
Exit Sub
End If

With Application
.DisplayAlerts = False
.ScreenUpdating = False

ThisWorkbook.Sheets(1).Delete
With Workbooks.Open("C:\1.xls")
.Sheets(1).Copy before:=ThisWorkbook.Sheets(1)
.Close 0
End With

.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.04.2011, 16:54   #6
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Пример от Hugo121 очень неплохой, но могут возникнуть проблемы если пользователь случайно удалит первый лист. В этом случае данные перенесутся на следущий в по порядку открытый в книге.

Последний раз редактировалось Алексей Трошкин; 06.04.2011 в 16:56.
Алексей Трошкин вне форума Ответить с цитированием
Старый 06.04.2011, 18:02   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Ну у Вас тоже будут проблемы, если пользователь удалит ThisWorkbook.Worksheets("Лист1")
Можно и в моём коде привязываться к имени или кодовому имени, и ругаться, если такого не будет.
Можно просто вставлять лист перед первым, ничего не удаляя - пусть пользователь потом руками ревизию делает.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.04.2011, 20:43   #8
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

спасибо, работает нормально
johny_03 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование из одной книги в другую 804040 Microsoft Office Excel 4 16.08.2010 11:03
Копирование и вставка формул из одной книги в другую KNatalia Microsoft Office Excel 5 10.06.2010 13:15
Сложное копирование из одной книги в другую kzld Microsoft Office Excel 12 15.07.2009 11:56
Помогите с интеграцией данных из одной книги в другую. Lexeron Microsoft Office Excel 5 05.03.2009 13:01
Копировние листов из одной книги в другую Jenik Microsoft Office Excel 4 04.03.2009 12:22