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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2011, 17:20   #1
Nick-1984
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 14
По умолчанию Необходимо скопировать 1 лист из одной книги в большое количество других книг

Задача такая. Есть одна книга которая содержит лист, который нужно скопировать во все книги в определенной папке (сохраняя формулы). Помогите дописать середину кода:
Private Sub CommandButton1_Click()

start: DestinationFolder = GetFolderPath("Выберите папку для просмотра списка файлов", "H:\Расчет резерва\")
' можешь заменить C:\Windows\ на любой другой путь, с которого должен начинаться выбор папки

If DestinationFolder = "" Then
Select Case MsgBox("Папка для просмотра не выбрана. Повторить?", vbQuestion + vbOKCancel, "Папка не выбрана")
Case vbOK: GoTo start
Case vbCancel: Exit Sub
End Select
Else
CreateDirectoryListing DestinationFolder
End If
End Sub

Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", Optional ByVal InitialPath As String = "c:\") As String
GetFolderPath = "": PS = Application.PathSeparator
With Application.FileDialog(msoFileDialo gFolderPicker)
.ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
If .Show = -1 Then GetFolderPath = .SelectedItems(1): If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
End With
End Function

Sub CreateDirectoryListing(Optional ByVal FolderPath As String = "='H:\Расчет резерва\4 квартал 2010\")
On Error Resume Next
'Dim fso As FileSystemObject, f As Folder, fl As File, fld As Folder

Set fso = CreateObject("Scripting.FileSystemO bject")
Set f = fso.GetFolder(FolderPath)

Application.ScreenUpdating = False
Set sh = ActiveSheet
ro = 2
With sh

ro = ro + 2

For Each fl In f.Files

как прописать здесь код копирования листа???

Next


.Columns("a:e").AutoFit


End With
Application.ScreenUpdating = True
End Sub
Nick-1984 вне форума Ответить с цитированием
Старый 12.09.2011, 17:52   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
'как прописать здесь код копирования листа???
With Workbooks.Open(fl.Path)
    sh.Copy before:=.Sheets(1) 'вставить перед первым листом книги
    .Close True
End With
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.09.2011, 08:33   #3
Nick-1984
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 14
По умолчанию Спасибо.

Но одна проблема. У меня на листе который я копирую есть формулы. И лист который копируется получается с ссылками на исходный файл (с кототрого копирую лист), а надо чтобы ссылался на ячейки в книге в которую скопировался лист. Короче, надо чтобы связей со старой книгой не было.
Nick-1984 вне форума Ответить с цитированием
Старый 13.09.2011, 10:17   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Попробуйте - без проверки на наличие формул и на наличие нужных листов в книгах:
Код:
Dim rFormulas As Range, a As Range
Set rFormulas = sh.Cells.SpecialCells(xlCellTypeFormulas)
With Workbooks.Open(fl.Path)
    sh.Copy before:=.Sheets(1)
    For Each a In rFormulas.Areas
        ActiveSheet.Range(a.Address).Formula = a.Formula
    Next
    .Close True
End With
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.09.2011, 10:56   #5
Nick-1984
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 14
По умолчанию

Все работает. Спасибо!!!
Nick-1984 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать определенные листы из одной книги в другую? Toffifee Microsoft Office Excel 32 20.05.2011 12:25
загрузить лист из одной книги в другую johny_03 Microsoft Office Excel 7 14.04.2011 20:43
Перенос множество данных из разных книг на 1 лист общей книги Nick-1984 Microsoft Office Excel 2 06.04.2011 13:02
Скопировать скрытый лист внутри книги... GieNa Microsoft Office Excel 6 06.10.2010 19:02
Скопировать данные из некоторых ячеек одной книги в другие книги fcunited Microsoft Office Excel 8 09.06.2010 12:14