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

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

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

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

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

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

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

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

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

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

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

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

Да, все нашел, буду пробовать разбираться...
Плохо что я английский в школе не учил :(
...
Рейтинг: 0 / 0
Из книги Excel добавить лист из другой книги Excel
    #36442841
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если имена файлов известны и не меняются, может пригодится:
Код: 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
Из книги Excel добавить лист из другой книги Excel
    #36442874
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или так, вообще незаметно:
Код: 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
Из книги Excel добавить лист из другой книги Excel
    #36443715
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

я так понял топикстартеру ещё и поиск открытие файла надо
т.е.
Код: plaintext
Application.FileDialog(msoFileDialogOpen)
...
Рейтинг: 0 / 0
Из книги Excel добавить лист из другой книги Excel
    #36443761
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автордля того кому пишу программу. Такую процедуру будет проделать довольно сложно. Так ка с экселем не на вы.
- и как он будет искать и выбирать, если просто открыть нужный файл не может...
Ну конечно это дело автора, если имена файлов непостоянны, то придётся
Код: plaintext
1.
2.
openxlsb = Application _
                .GetOpenFilename("Файл-источник (*.xls), *.xls")
Set xlsb = Workbooks.Open(Filename:=openxlsb, ReadOnly:=True)
...
Рейтинг: 0 / 0
Из книги Excel добавить лист из другой книги Excel
    #36443944
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, 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
Из книги Excel добавить лист из другой книги Excel
    #36443960
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

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

Код: 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
Из книги Excel добавить лист из другой книги Excel
    #36444801
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanus
'запись пути
paTH = vrtSelectedItem


У в твоем коде на слове paTH выдает ошибку. Мол перменая не определена.
Как ты ее определял?
...
Рейтинг: 0 / 0
Из книги Excel добавить лист из другой книги Excel
    #36444845
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверить не могу, но имхо раз
Код: plaintext
1.
Dim vrtSelectedItem As Variant
paTH = vrtSelectedItem
то
Код: plaintext
Dim paTH As Variant
А вообще, если без мультивыбора, это всё повыкидывать и написать просто
Код: plaintext
TextBox1.Value = fd.SelectedItem
имхо...
...
Рейтинг: 0 / 0
Из книги Excel добавить лист из другой книги Excel
    #36444867
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: 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
Из книги Excel добавить лист из другой книги Excel
    #36444935
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри
это моя глобальная переменная из кода, я потом из этих mdb инфу подгружал

Конечно можно сразу этот селектед итем передавать кому угодно, хоть значению контрола, хоть собственным переменным, хоть возвращать как результат выполнения функции.
...
Рейтинг: 0 / 0
Из книги Excel добавить лист из другой книги Excel
    #36444939
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Из книги Excel добавить лист из другой книги Excel
    #36444997
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот чистый код

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
Из книги Excel добавить лист из другой книги Excel
    #36445025
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может неоптимально, но я раз делал примерно так:
Arr = Split(paTH, "\")
itog = Arr(Ubound(Arr))
Вот не помню, что там с "\" в конце, было, небыло... нужно/ненужно, но его можно и добавить или отрезать через Len(itog)...
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Из книги Excel добавить лист из другой книги Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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