Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из книги Excel добавить лист из другой книги Excel / 25 сообщений из 55, страница 1 из 3
01.02.2010, 15:53
    #36442487
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Мне надо из активной книги в которой работаю, сделать так что бы я мог подгрузить один или несколько листов из другой книги. При этом не загружая эту книгу.
Как мне это сделать?
...
Рейтинг: 0 / 0
01.02.2010, 15:59
    #36442507
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Что такое, "подгрузить, но не грузить?"

Получить данные из другой книги? ищите здесь же CreateObject
...
Рейтинг: 0 / 0
01.02.2010, 16:09
    #36442531
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Shocker.ProЧто такое, "подгрузить, но не грузить?"

Получить данные из другой книги? ищите здесь же CreateObject

Подгрузить значит, взять лист из книги, и добавить его в активную книгу, в той которой нахожусь.

Как то может можно, через открытие файла. выбрать книгу, а далее как то изловчится не знаю как, сделать что бы он добавил из этой книги все или определенный выбранный. Если это конечно возможно.
...
Рейтинг: 0 / 0
01.02.2010, 16:10
    #36442534
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
lopuxi
Подгрузить значит, взять лист из книги, и добавить его в активную книгу, в той которой нахожусь.

Как то может можно, через открытие файла. выбрать книгу, а далее как то изловчится не знаю как, сделать что бы он добавил из этой книги все или определенный выбранный. Если это конечно возможно.

Ах да. Все это через VBA по нажатию кнопочки.
...
Рейтинг: 0 / 0
01.02.2010, 16:13
    #36442541
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
А почему бы не открыть эту книгу, скопировать из нее лист и закрыть?
...
Рейтинг: 0 / 0
01.02.2010, 16:18
    #36442556
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Shocker.ProА почему бы не открыть эту книгу, скопировать из нее лист и закрыть?

Для меня это тоже было бы проще. Но для того кому пишу программу. Такую процедуру будет проделать довольно сложно. Так ка с экселем не на вы.
Да и объединять в одну книгу листы из разных excel файлов. Довольно муторно. Поэтому решил заморочится и создать что-то модернезированное, что бы быстро и комфортно объединяло в одну книгу только нужную информацию взятую из других книг.
...
Рейтинг: 0 / 0
01.02.2010, 16:28
    #36442571
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
lopuxiНо для того кому пишу программу. Такую процедуру будет проделать довольно сложно.

Ему будет сложно нажать на вашу кнопку, которая сама все откроет, скопирует и закроет?
...
Рейтинг: 0 / 0
01.02.2010, 16:36
    #36442594
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Shocker.ProlopuxiНо для того кому пишу программу. Такую процедуру будет проделать довольно сложно.

Ему будет сложно нажать на вашу кнопку, которая сама все откроет, скопирует и закроет?

Да ты обсолютно прав.

И в прочем что-то подобное я уже делал.
Там была программка по проверке размера файла. И думаю если сделать что-то похожее. Тока не в VB а в VBA Excel. Что бы она не открывала выбранный в ней лист. А давала названия или номера листов. И выбранный лист, подгружался.
...
Рейтинг: 0 / 0
01.02.2010, 16:56
    #36442661
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Можно ли в Excel это как-то реализовать, так как я, это выложил в файле, в сообщении выше?
Я так понял filelistBox и DirListBox не поддерживается VBA. и это плохо.
...
Рейтинг: 0 / 0
01.02.2010, 16:59
    #36442674
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
я уже давал ссылки на API выбора директории и файла http://vbnet.mvps.org/code/comdlg/filedlgsoverview.htm
...
Рейтинг: 0 / 0
01.02.2010, 17:31
    #36442773
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Konst_Oneя уже давал ссылки на API выбора директории и файла http://vbnet.mvps.org/code/comdlg/filedlgsoverview.htm

Да, все нашел, буду пробовать разбираться...
Плохо что я английский в школе не учил :(
...
Рейтинг: 0 / 0
01.02.2010, 17:54
    #36442841
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Если имена файлов известны и не меняются, может пригодится:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub tt()
Application.ScreenUpdating =  0 
openxlsa = "C:\Book2.xls"
Set xlsa = Workbooks.Open(Filename:=openxlsa, ReadOnly:=True)
MsgBox xlsa.Sheets( 1 ).Cells( 1 ,  1 ).Value
xlsa.Close
Application.ScreenUpdating =  1 
End Sub
...
Рейтинг: 0 / 0
01.02.2010, 18:12
    #36442874
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Или так, вообще незаметно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub ttt()
   Set objExcel = New Excel.Application
   Set wbhidden = objExcel.Workbooks.Open("c:\Macros\Primeri\Excel\check.xls")
   
     Cells( 1 ,  10 ).Value = wbhidden.Sheets( 1 ).Cells( 1 ,  1 )
     
     wbhidden.Close ' обязательно при выходе из кода
   Set objExcel = Nothing  ' обязательно при выходе из кода
End Sub
...
Рейтинг: 0 / 0
02.02.2010, 10:17
    #36443715
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Hugo121,

я так понял топикстартеру ещё и поиск открытие файла надо
т.е.
Код: plaintext
Application.FileDialog(msoFileDialogOpen)
...
Рейтинг: 0 / 0
02.02.2010, 10:33
    #36443761
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
автордля того кому пишу программу. Такую процедуру будет проделать довольно сложно. Так ка с экселем не на вы.
- и как он будет искать и выбирать, если просто открыть нужный файл не может...
Ну конечно это дело автора, если имена файлов непостоянны, то придётся
Код: plaintext
1.
2.
openxlsb = Application _
                .GetOpenFilename("Файл-источник (*.xls), *.xls")
Set xlsb = Workbooks.Open(Filename:=openxlsb, ReadOnly:=True)
...
Рейтинг: 0 / 0
02.02.2010, 11:28
    #36443944
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Кстати, Application.FileDialog(msoFileDialogOpen) у меня на 2000 Экселе не заработало (Run-time error '438': Object doesn't support this property or method
), говорят надо подключить ещё это:
Library Office
...\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL
Microsoft Office 11.0 Object Library
...
Рейтинг: 0 / 0
02.02.2010, 11:33
    #36443960
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Hugo121,

угу надо
зато избавляет от труда самописных диалоговых окон (я как то раз пытался победить), очень легко настраивается фильтры.
Да и тип окна в формат системы. У меня на win7 это очень симпотишненько.
...
Рейтинг: 0 / 0
02.02.2010, 11:49
    #36444009
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
если кому надо пример кода

Код: 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.
25.
26.
27.
28.
29.
30.
Private Sub CommandButton4_Click()

Dim fd As FileDialog
Dim vrtSelectedItem As Variant

'Filters.Add(, "MBD",1)
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Filters.Clear
.Filters.Add "Только Базы данных", "*.MDB"
.FilterIndex =  0 
.AllowMultiSelect = False

.ButtonName = "Выбрать"
'Нажата кнопка "Выбрать"
If .Show = - 1  Then
For Each vrtSelectedItem In .SelectedItems
'запись пути
 paTH = vrtSelectedItem
 Next vrtSelectedItem
'Нажата кнопка Cancel.
Else
 Exit Sub
End If
End With

Set fd = Nothing

TextBox1.Value = paTH

End Sub

так как мультиселект на фалсе, то в принципе фор ич селектед итем не надо, но если вдруг кому то нужно много путей вести.
...
Рейтинг: 0 / 0
02.02.2010, 15:31
    #36444801
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Shamanus
'запись пути
paTH = vrtSelectedItem


У в твоем коде на слове paTH выдает ошибку. Мол перменая не определена.
Как ты ее определял?
...
Рейтинг: 0 / 0
02.02.2010, 15:44
    #36444845
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Проверить не могу, но имхо раз
Код: plaintext
1.
Dim vrtSelectedItem As Variant
paTH = vrtSelectedItem
то
Код: plaintext
Dim paTH As Variant
А вообще, если без мультивыбора, это всё повыкидывать и написать просто
Код: plaintext
TextBox1.Value = fd.SelectedItem
имхо...
...
Рейтинг: 0 / 0
02.02.2010, 15:51
    #36444867
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
> Автор: lopuxi
> У в твоем коде на слове paTH выдает ошибку. Мол перменая не определена.
> Как ты ее определял?

Воспользуйся силой, Люк! (с) Мастер Йода
Object Browser(F2)Property SelectedItems As FileDialogSelectedItems
read-only
Member of Office.FileDialog
Object Browser(F2)Function Item(Index As Long) As String
Default member of Office.FileDialogSelectedItems



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.02.2010, 16:11
    #36444935
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
сорри
это моя глобальная переменная из кода, я потом из этих mdb инфу подгружал

Конечно можно сразу этот селектед итем передавать кому угодно, хоть значению контрола, хоть собственным переменным, хоть возвращать как результат выполнения функции.
...
Рейтинг: 0 / 0
02.02.2010, 16:13
    #36444939
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Shamanus

Private Sub CommandButton4_Click()

Dim fd As FileDialog
Dim vrtSelectedItem, paTH As Variant

'Filters.Add(, "MBD",1)
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Filters.Clear
.Filters.Add "Только Базы данных", "*.MDB"
.FilterIndex = 0
.AllowMultiSelect = False

.ButtonName = "Выбрать"
'Нажата кнопка "Выбрать"
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
'запись пути
paTH = vrtSelectedItem
Next vrtSelectedItem
'Нажата кнопка Cancel.
Else
Exit Sub
End If
End With

Set fd = Nothing

TextBox1.Value = paTH

End Sub



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

Я щас тоже по пробую, но не уверен что получится. Делал пока такое только один раз и то по учебнику.
...
Рейтинг: 0 / 0
02.02.2010, 16:26
    #36444997
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Вот чистый код

Function GetFilePath() As String


Dim fd As FileDialog
Dim vrtSelectedItem As Variant


Set fd = Application.FileDialog(msoFileDialogOpen)

With fd
.Filters.Clear
.Filters.Add "Только Базы данных", "*.MDB"
.FilterIndex = 0
.AllowMultiSelect = False
.ButtonName = "Выбрать"
End With

If fd.Show = -1 Then
GetFilePath = fd.SelectedItems.Item(1)
Else
Exit Function
End If

Set fd = Nothing

End Function


' КОД В МОДУЛЕ
Sub doit()
Dim MyPath As String
MyPath = GetFilePath
End Sub
...
Рейтинг: 0 / 0
02.02.2010, 16:33
    #36445025
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Из книги Excel добавить лист из другой книги Excel
Может неоптимально, но я раз делал примерно так:
Arr = Split(paTH, "\")
itog = Arr(Ubound(Arr))
Вот не помню, что там с "\" в конце, было, небыло... нужно/ненужно, но его можно и добавить или отрезать через Len(itog)...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из книги Excel добавить лист из другой книги Excel / 25 сообщений из 55, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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