Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / вопрос по созданию новой рабочей книги / 13 сообщений из 13, страница 1 из 1
19.10.2010, 13:42
    #36907409
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
доброго времени суток.
подскажите пожалуйста: мне нужно создать из текущей рабочей книги - новую книгу (определенного названия), с одним листом (опять же имя листа сразу задаю), потом из исходной книги скопировать 3 листа в новую и произовдить потом с этими листами определенные действия.

Private Sub Wb2()
Dim naz1, naz2 As String
Dim i As Integer
'Запоминаю название старой книги
naz1 = ActiveWorkbook.Name
Application.SheetsInNewWorkbook = 1
Set wbNew = Application.Workbooks.Add
wbNew.Sheets(1).Name = "Свод"
wbNew.Activate
naz2 = Application.GetSaveAsFilename("Сводные данные по собственникам.xls")
'Открываю книгу
Workbooks.Open naz2, 0 ' тут она говорит что файл не сохранен или был перемещен, как сохранить файл?
'Запомнил название новой книги
naz2 = ActiveWorkbook.Name
'ищу в старой книге нижнюю границу 1 столбика
n1 = Workbooks(naz1).Sheets(1).Range("A1").End(xlDown).Row
'n1 = Workbooks(naz2).Sheets(1).Range("A1").End(xlDown).Row
For i% = 1 To n1
'if workbooks(naz1).Cells(n1, 1) ''условие'' then
Workbooks(naz1).Cells(n1, 1) = Workbooks(naz2).Cells(i, 1)
Next
'False отвечает за сохр. изменений
Workbooks(naz2).Close '(False)
End Sub
...
Рейтинг: 0 / 0
19.10.2010, 13:47
    #36907417
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Wb2()
Dim naz1, naz2 As String
Dim i As Integer
'Запоминаю название старой книги
naz1 = ActiveWorkbook.Name
Application.SheetsInNewWorkbook =  1 
Set wbNew = Application.Workbooks.Add
wbNew.Sheets( 1 ).Name = "Свод"
wbNew.Activate
naz2 = Application.GetSaveAsFilename("Сводные данные по собственникам.xls")
'Открываю книгу
Workbooks.Open naz2,  0        ' тут она говорит что файл не сохранен или был перемещен, как сохранить файл?
'Запомнил название новой книги
naz2 = ActiveWorkbook.Name
'ищу в старой книге нижнюю границу 1 столбика
n1 = Workbooks(naz1).Sheets( 1 ).Range("A1").End(xlDown).Row
'n1 = Workbooks(naz2).Sheets(1).Range("A1").End(xlDown).Row
For i% =  1  To n1
    'if workbooks(naz1).Cells(n1, 1) ''условие'' then
        Workbooks(naz1).Cells(n1,  1 ) = Workbooks(naz2).Cells(i,  1 )
Next
'False отвечает за сохр. изменений
Workbooks(naz2).Close '(False)
End Sub
...
Рейтинг: 0 / 0
19.10.2010, 13:48
    #36907418
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Workbooks.Open naz2

вы пытаетесь открыть файл, которого нет
что вас удивляет?
...
Рейтинг: 0 / 0
19.10.2010, 13:52
    #36907433
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
значит после создания книги его нужно сохранить? (как?)

тогда вопрос - сразу после создания новой книги я могу в ней работать?
...
Рейтинг: 0 / 0
19.10.2010, 13:55
    #36907443
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Nomad87значит после создания книги его нужно сохранить? (как?)
не поверите. Метод книги SaveAs
Nomad87тогда вопрос - сразу после создания новой книги я могу в ней работать?
разумеется
...
Рейтинг: 0 / 0
19.10.2010, 14:02
    #36907469
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
почему то не хочет этот стандартный метод сохранять ...

Workbooks(wbNew).SaveAs (naz2)

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

For i = 1 To n1
if workbooks(naz1).Cells(n1, 1) ''условие'' then
Workbooks(naz1).Cells(n1, 1) = Workbooks(naz2).Cells(i, 1)
Next

что я делаю не правильно?
я хочу создать книгу, создать в ней лист, потом сохранить книгу и именем "Свод", закрыть книгу.
потом открыть ее опять и обращаться к ней. Все.
...
Рейтинг: 0 / 0
19.10.2010, 14:08
    #36907487
A_Cross
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Nomad87,

а путь указывать обязательно?
Код: plaintext
1.
2.
ActiveWorkbook.SaveAs Filename:= _
        "С:\...\\TEMP\name.xls", FileFormat:=xlS, _
        CreateBackup:=False
...
Рейтинг: 0 / 0
19.10.2010, 14:09
    #36907492
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Nomad87что я делаю не правильно?

Вы просто не очень понимаете смысл объектного программирования.
wbNew - это и есть ваша книга

wbNew.SaveAs naz2 - это сохранение

wbNew.Cells(n1, 1) - это обращение к ячейке, при этом нет необходимости сохранять книгу, в общем-то
...
Рейтинг: 0 / 0
19.10.2010, 14:14
    #36907505
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Nomad87Workbooks(naz1).Cells(n1, 1) = Workbooks(naz2).Cells(i, 1)
Shocker.ProwbNew.Cells(n1, 1) - это обращение к ячейке
точнее, вы совсем неправильно написали и я за вами потянулся
у книги нет ячеек, ячейки есть у листа
так что правильно вот так:
Код: plaintext
wbNew.WorkSheets( 1 ).Cells(n1,  1 )
...
Рейтинг: 0 / 0
19.10.2010, 14:16
    #36907512
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
значит я могу ее создать, сделать активной

Application.SheetsInNewWorkbook = 1
Set wbNew = Application.Workbooks.Add
wbNew.Sheets(1).Name = "Свод"
wbNew.Activate

и сразу с ней работать?

For i = 1 To n1
if wbNew.Cells(n1, 1) ''условие'' then
Workbooks(naz1).Cells(n1, 1) = wbNew.Cells(i, 1)
Next

я правильно понимаю?
...
Рейтинг: 0 / 0
19.10.2010, 14:19
    #36907527
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
про лист и ячейки я понял, спасибо, а касаемо остального?
...
Рейтинг: 0 / 0
19.10.2010, 14:20
    #36907530
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
Nomad87значит я могу ее создать, сделать активной

Application.SheetsInNewWorkbook = 1
Set wbNew = Application.Workbooks.Add
wbNew. Sheets (1).Name = "Свод"
wbNew.Activate

и сразу с ней работать?

For i = 1 To n1
if wbNew.Cells(n1, 1) ''условие'' then
Workbooks(naz1).Cells(n1, 1) = wbNew.Cells(i, 1)
Next

я правильно понимаю?

не Sheets, а WorkSheets

а вообще, сделайте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Application.SheetsInNewWorkbook =  1 
Set wbNew = Application.Workbooks.Add
Set wsNew = wbNew.WorkSheets( 1 )
wsNew.Name = "Свод"
wbNew.Activate

For i =  1  To n1
if wsNew.Cells(n1,  1 ) ''условие'' then
wsNew.Cells(n1,  1 ) = wsNew.Cells(i,  1 )
Next

и научитесь уже в конце-концов код оформлять, что за издевательство над участниками?
...
Рейтинг: 0 / 0
19.10.2010, 14:22
    #36907542
Nomad87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по созданию новой рабочей книги
спасибо, буду пробовать
код постараюсь оформлять правильно.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / вопрос по созданию новой рабочей книги / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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