powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите скопировать лист из книги в книгу
25 сообщений из 38, страница 1 из 2
Помогите скопировать лист из книги в книгу
    #34046728
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот мои мысли, но не работает. :(
Sub q()
Application.Workbooks.Open("c:\Проба\Пробный.xls").Activate
Application.ActiveWorkbook.Worksheets("ПробныйЛист").Select
Application.ActiveWorkbook.Worksheets("ПробныйЛист").Copy after:=Application.Workbooks("c:\Проба\Пробный2xls").Sheets("Лист3")
End Sub

кто что может предложить?
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34046774
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Sub q()
     Application.Workbooks.Open "c:\Проба\Пробный.xls"
     Application.ActiveWorkbook.Worksheets("ПробныйЛист").Select
     Application.ActiveWorkbook.Worksheets("ПробныйЛист").Copy after:=Application.ActiveWorkbook.Sheets( 3 )
End Sub
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34046819
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понимаю лист скопируется в активную книгу, а мне нужно в другую
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34046867
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3Я так понимаю лист скопируется в активную книгу, а мне нужно в другую
Прежде чем лист копировать в книгу эту книгу надо открыть!
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34046944
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nike Dmitriy3Я так понимаю лист скопируется в активную книгу, а мне нужно в другую
Прежде чем лист копировать в книгу эту книгу надо открыть!

Подрозумевается, что книга будет уже открыта. Собираюсь это повесить на событие при открытии книги
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047045
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какую ошибку выдает-то?
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047076
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
run-time error '9'
subscript out of range
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047115
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Application.ActiveWorkbook.Worksheets("ПробныйЛист").Select
Application.ActiveWorkbook.Worksheets("ПробныйЛист").Copy after:=Application.ActiveWorkbook.Sheets( 3 )

возможно нету листа ПробныйЛист, если такой лист есть, то ошибка в Sheets(3)
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047144
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это если копируете из уже открытой книги с макросом в Пробный.xls
Код: plaintext
1.
Application.Workbooks.Open("c:\Проба\Пробный.xls").Activate
Application.ActiveWorkbook.Worksheets("ПробныйЛист").Copy after:=Application.ThisWorkbook.Sheets("Лист3")

Если вешать это событием на открытие книги Пробный.xls, то макрос переписывать надо.

...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047145
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как то мы не туда полезли :)
Я собственно хочу решить пока следующию задачу. При открытии книги Проба.xls, в нее на зарание отведенный лист, копируется все содержание листа из другой книги скажем Проба1.xls Лист1
Вот кто что может предложить на сей счет
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047253
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3Как то мы не туда полезли :)
Как-то вы тогда не так объясняете.
Dmitriy3Я собственно хочу решить пока следующию задачу. При открытии книги Проба.xls, в нее на зарание отведенный лист, копируется все содержание листа из другой книги скажем Проба1.xls Лист1
При условии, что Проба1.xls уже открыт и в книге Проба.xls не существует листа Лист1, в книге Проба.xls пишем следующий макрос:
Код: plaintext
1.
2.
Private Sub Workbook_Open()
    Application.Workbooks("Проба1.xls").Sheets("Лист1").Copy after:=ThisWorkbook.Sheets( 1 )
End Sub
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047542
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nike Dmitriy3Как то мы не туда полезли :)
Как-то вы тогда не так объясняете.
Dmitriy3Я собственно хочу решить пока следующию задачу. При открытии книги Проба.xls, в нее на зарание отведенный лист, копируется все содержание листа из другой книги скажем Проба1.xls Лист1
При условии, что Проба1.xls уже открыт и в книге Проба.xls не существует листа Лист1, в книге Проба.xls пишем следующий макрос:
Код: plaintext
1.
2.
Private Sub Workbook_Open()
    Application.Workbooks("Проба1.xls").Sheets("Лист1").Copy after:=ThisWorkbook.Sheets( 1 )
End Sub


А если условие такое, что Проба1.xls может быть как открыт так и закрыт и в Проба.xls уже есть Лист 1.
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047644
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3А если условие такое, что Проба1.xls может быть как открыт так и закрыт и в Проба.xls уже есть Лист 1.

Если уже есть "Лист1", то добавится "Лист1(2)", а что нужно то? Как-нибудь сразу все условия нельзя сформулировать?.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Workbook_Open()
    Dim wb As Workbook, wbFullName As String, wbName As String
    
    wbFullName = "c:\Проба\Проба1.xls"
    wbName = Dir(wbFullName)
    
    On Error Resume Next
    Set wb = Workbooks(wbName)
    On Error GoTo  0 
    If wb Is Nothing Then
        If wbName = "" Then
            MsgBox "The specified file doesn't exist in the specified directory!"
            Exit Sub
        Else
            Set wb = Workbooks.Open(wbFullName)
        End If
    End If
    wb.Sheets("Лист1").Copy after:=ThisWorkbook.Sheets( 1 )
    wb.Close False
End Sub
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34047920
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL) Dmitriy3А если условие такое, что Проба1.xls может быть как открыт так и закрыт и в Проба.xls уже есть Лист 1.

Если уже есть "Лист1", то добавится "Лист1(2)", а что нужно то? Как-нибудь сразу все условия нельзя сформулировать?.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Workbook_Open()
    Dim wb As Workbook, wbFullName As String, wbName As String
    
    wbFullName = "c:\Проба\Проба1.xls"
    wbName = Dir(wbFullName)
    
    On Error Resume Next
    Set wb = Workbooks(wbName)
    On Error GoTo  0 
    If wb Is Nothing Then
        If wbName = "" Then
            MsgBox "The specified file doesn't exist in the specified directory!"
            Exit Sub
        Else
            Set wb = Workbooks.Open(wbFullName)
        End If
    End If
    wb.Sheets("Лист1").Copy after:=ThisWorkbook.Sheets( 1 )
    wb.Close False
End Sub


Большое спасибо процедура работает.
можно откоментировать вот этот кусочек
On Error Resume Next
Set wb = Workbooks(wbName)
On Error GoTo 0

И еще одно, если Лист1 уже есть можно его переписать (заменить) на вновь скопированный, а не создавать каждый раз новый лист. (Удалять Лист1 при закрытии не желательно)
И ужу совсем хорошо было бы если при копировани смотреть был Лист1 модифицирован и если да то копировать иначе нет
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34048229
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3можно откоментировать вот этот кусочек
On Error Resume Next
Set wb = Workbooks(wbName)
On Error GoTo 0 On Error Resume Next
Временно выключаем остановку процедуры при ошибках

Set wb = Workbooks(wbName)
Пытаемся задать переменную книги. Если книга не открыта, то произойдет ошибка (на которую мы не отреагируем ввиду вышеуказ. инструкции, а если книга открыта, то задастся переменная.

On Error GoTo 0
Включаем остановку процедуры при ошибках, чтоб не пропустить др. ошибки

If wb Is Nothing Then...
Теперь проверяем задалась ли переменная и действуем по обстановке :-)

Dmitriy3если Лист1 уже есть можно его переписать (заменить) на вновь скопированный...Тогда так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub Workbook_Open()
    Dim wb As Workbook, wbFullName As String, wbName As String
    
    wbFullName = "c:\Проба\Проба1.xls"
    wbName = Dir(wbFullName)
    
    On Error Resume Next
    Set wb = Workbooks(wbName)
    On Error GoTo  0 
    If wb Is Nothing Then
        If wbName = "" Then
            MsgBox "The specified file doesn't exist in the specified directory!"
            Exit Sub
        Else
            Set wb = Workbooks.Open(wbFullName)
        End If
    End If
    On Error Resume Next
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets("Лист1").Delete
    Application.DisplayAlerts = True
    On Error GoTo  0 
    wb.Sheets("Лист1").Copy after:=ThisWorkbook.Sheets( 1 )
    wb.Close False
End Sub

Dmitriy3И ужу совсем хорошо было бы если при копировани смотреть был Лист1 модифицирован и если да то копировать иначе нетНу это будет слегка посложней. Если хочешь, исследуй код приложения Compare на след. странице: http://www.cpearson.com/excel/download.htm

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34048291
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Лист1").Delete
Application.DisplayAlerts = True
On Error GoTo 0
wb.Sheets("Лист1").Copy after:=ThisWorkbook.Sheets(1)
wb.Close False
End Sub[/src]
а если фаил из которого при открытии запускаем процедуру уже открыт у кого то, то как на нем отразиться удаление и новая вставка листа?
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34048432
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Лист1").Delete
Application.DisplayAlerts = True
On Error GoTo 0
wb.Sheets("Лист1").Copy after:=ThisWorkbook.Sheets(1)
wb.Close False
End Sub[/src]
а если фаил из которого при открытии запускаем процедуру уже открыт у кого то, то как на нем отразиться удаление и новая вставка листа?

1) этого не должно происходить иначе надо отлаживать процесс работы с файлом, а не код.

2) если это все-таки происходит, тут два варианта:

а. если файл зашарен (Shared), то лист добавить невозможно в любом случае и выскочит ошибка VBA.

б. если файл не зашарен, то сохранить изменения в нем сможет только тот, кто его открыл первым. Осталные смогут ...
- либо открыть в режиме Read Only и сохранить свои изменения в др. файл, потеряв при этом изменения, которые производились первым пользователем.
- либо ждать пока первый пользователь закроет файл

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34049494
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В продолжение вчерашней темы копирования листа.
Вся задача состоит в следующем. Есть два файла (Исходный. xls и Принимающий.xls) оба имеют общий доступ в сети. Народу хочется при открытии Принимающий.xls увидеть в нем все новое, что появилось в Исходный. xls .(речь идет о конкретном листе а не о всем файле). Как быть с тем, что файлы могут одновременно открываться и закрываться, возможно и редактироваться.
Реально ли это реализовать?
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34049550
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обьедените файлы в один
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34049567
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Он сейчас и есть один. :) Но вот у начальства мысли появились сделать два.
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34050499
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хелп еще плиз.
Помогите доработать процедуру.
Как бы ее заставить не реагировать на простое выделение ячеек.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim metka As String
metka = "Было изменение"
If Cells("").Select Then ' вот тут я пытаюсь заставить не реагировать на клики по ячейкам
Range("k2").Value = ""
Else
Range("k2").Value = metka
End If
End Sub
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34050537
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3Он сейчас и есть один. :) Но вот у начальства мысли появились сделать два.

Обьясни начальству что это плохая идея.
Для совмесного пользования я бы предложил связку EXCEL - ACCESS
1. Доступно (ни чего докупать не надо поскольку все в пакете MSOffice
2. Не нужно обучать народ Access т. к. вывод и ввод через EXCEL
3. Более устойчивая работа (Access позволяет одновременно подключаться ~ 25 пользователям)

А обучится этому легко http://www.firststeps.ru/vba/excel/r.php?41
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34050577
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy3Хелп еще плиз.
Помогите доработать процедуру.
Как бы ее заставить не реагировать на простое выделение ячеек.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim metka As String
metka = "Было изменение"
If Cells("").Select Then ' вот тут я пытаюсь заставить не реагировать на клики по ячейкам
Range("k2").Value = ""
Else
Range("k2").Value = metka
End If
End Sub

ты бы рассказал сразу концепцию, а то опять окажиться что тебе нужно совсем другое

для отлова изменения ячейки надо использовать
Код: plaintext
Private Sub Worksheet_Change
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34050625
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот блин балда я не на то событие стал процедуру вешать, не внимательность блин.
Да я все продолжаю придумывать как выйти из положения. Сейчас думаю отслеживать были изменения на листе или нет и если были то копировать его во второй фаил. Плюс думаю разрешить это конкретному человеку чтобы только один человек мог запускать процесс. Еще хочу отследить строки где были изменения и какнибуть их акцентировать, что бы пользователь сразу видел. Ну а дальше видно будет, как еще трансформируется сия идея :)
...
Рейтинг: 0 / 0
Помогите скопировать лист из книги в книгу
    #34051153
Dmitriy3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять хелп.
Теперь никак не могу убрать метку. Все попытки ее убрать заканчиваются тем, что это воспринимается как изменение и она опять ставиться. :(
Хочется после того как лист скопирован эту метку убирать, а никак не выходит.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim metka As String
metka = "Было изменение"
Range("k2").Value = metka
End Sub
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите скопировать лист из книги в книгу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]